我在模型中有一个 many2many 字段:
models.py
pages = models.ManyToManyField(Page, verbose_name='Pages', blank=True)
对于管理界面filter_horizontal工作得很好:
admin.py
filter_horizontal = ['pages',]
但是当我覆盖这个字段时,使用forms.Modelform(用于更改查询集) - 在界面中它开始像一个简单的<select>
字段一样显示:
forms.py
class BannerAdminForm(forms.ModelForm):
pages = forms.ModelMultipleChoiceField(queryset=Page.objects.filter(publisher_is_draft=0), label='Pages')
class Meta:
model = Banners
admin.py
class BannersAdmin(admin.ModelAdmin):
form = BannerAdminForm
filter_horizontal = ['pages',]
这个问题有什么解决办法吗?我为ModelMultipleChoiceField寻找了一些特殊的小部件,但没有找到任何东西。