Django管理サイトは本当にクールなウィジェットを利用しています:
自分のアプリケーションでこのウィジェットをどのように利用できますか?私はそのようなものは何も見ません ここにリストされています 。
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
のフォームを含めてください。