Django管理站点使用了一个非常酷的小部件:
如何在自己的应用程序中使用此小部件?我看不到这里列出的任何东西。
Django Admin应用程序为日历,过滤的选择等定义了许多自定义的小部件。这些小部件定义了媒体要求,并且Django Admin使用自定义小部件代替Django默认值。管理模板将仅包括在任何给定页面上呈现窗口小部件所需的那些媒体文件。
如果你喜欢Django Admin应用程序使用的小部件,请随时在你自己的应用程序中使用它们!它们都存储在django.contrib.admin.widgets中。
django.contrib.admin.widgets
在这种情况下,你需要FilteredSelectMultiple小部件。要使用它,请将小部件应用于表单字段,如下所示:
FilteredSelectMultiple
my_field = forms.ModelMultipleChoiceField(queryset=MyModel.objects.all(), widget=FilteredSelectMultiple("verbose name", is_stacked=False))
确保media在模板中包含表单,因为它需要包含一些JS文件。