Django

0

Django Adminの外部キーフィールドに関連するデフォルト表示 は、関連するモデルの外部キー のすべてを含むドロップダウンリストボックスです。私のアプリには何千ものアイテムが含まれており、管理インターフェースを変更して、入力されたドロップダウンの代わりにテキストボックスを使用するようにしています。Django

テキストボックスの横に追加/編集アイコンがあるので、値が入力されないように、直接追加または編集します。

これを達成する方法はありますか。

答えて

0

カスタムフォームを使用して、このフォームフィールドでカスタムウィジェットを実現できます。このフィールドに選択するためのオブジェクトのカスタマイズクエリセット用のフォーム__init__をオーバーロードすることができますもで

from django import forms 
from django_select2.forms import ModelSelect2Widget 


class KeyWidget(ModelSelect2Widget): 
    model = ModelToKey 
    search_fields = ['field__icontains'] 

    def label_from_instance(self, obj): 
     return u'{}'.format(obj.field) 


class CustomForm(forms.ModelForm): 

    class Meta: 
     model = ModelWithKey 
     fields = ('foreign_key_field') 
     widgets = { 
      'foreign_key_field': KeyWidget(attrs={'style': 'width:550px'}), 
      } 

(私はこのdesicionサードパーティのライブラリdjango_select2のために使用します)。

+0

'django_select2'がDjangoパッケージに含まれていない場合は、インストールするパッケージと要件が正確である必要があります。 –

関連する問題