web-dev-qa-db-ja.com

Django複数選択ウィジェット?

Django管理サイトは本当にクールなウィジェットを利用しています:

enter image description here

自分のアプリケーションでこのウィジェットをどのように利用できますか?私はそのようなものは何も見ません ここにリストされています

52
mpen

docs から:

Django Adminアプリケーションは、カレンダー、フィルター選択などのカスタマイズされたウィジェットの数を定義します。これらのウィジェットはメディア要件を定義し、Django AdminはDjangoデフォルトの代わりにカスタムウィジェットを使用します。管理テンプレートには、特定のページでウィジェットをレンダリングするために必要なメディアファイルのみが含まれます。

Django管理アプリケーションが使用するウィジェットが気に入ったら、自由に自分のアプリケーションで使用してください!これらはすべてDjango.contrib.admin.widgetsに保存されています。

この場合、FilteredSelectMultipleウィジェットが必要です。これを使用するには、次のようにウィジェットをフォームフィールドに適用します。

my_field = forms.ModelMultipleChoiceField(queryset=MyModel.objects.all(), widget=FilteredSelectMultiple("verbose name", is_stacked=False))

いくつかのJSファイルを含める必要があるため、テンプレートには必ずmediaのフォームを含めてください。

51
Bartek