我有一个用例,我有多个Ingredient
,可以通过Django管理员链接到Recipe
。现在我有大约一百种成分,这使得在以下UI中选择成分非常困难。
有没有办法添加搜索字段或类似于django管理员的东西,以方便选择?
你几乎没有选择。
filter_horizontal
使用filter_horizontal,您可以在admin中使用水平m2m ui。我更喜欢这种方式在管理员中使用m2m。
class YourAdmin(admin.ModelAdmin):
filter_horizontal = ('m2m_field',)
...
结果将是......
raw_id_fields
docs您可以使用raw_id_fields
在您的m2m字段中使用弹出模式。
当你有很多m2m字段时,它有点用处。此外,过滤哪个m2m obj很容易。
class YourAdmin(admin.ModelAdmin):
raw_id_fiedls = ('m2m_field',)
...
我想你想过滤成分并在管理界面上逐一选择它
您可以使用qazxsw poi小部件中的django表单代替qazxsw poi来轻松选择
CheckboxSelectMultiple
或者,如果您想要选择搜索输入,可以使用
SelectMultiple
包,请参阅Github repo进行安装
它是一个自定义小部件,通过覆盖django表单的from django import forms
from django.contrib import admin
class RecipeForm(forms.ModelForm):
class Meta(object):
model = Recipe
widgets = {
'Ingredient': forms.CheckboxSelectMultiple,
}
class RecipeAdmin(admin.ModelAdmin):
form = RecipeForm
admin.site.register(Recipe, RecipeAdmin)
小部件创建
django-better-filter-widget