モデルに 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の特別なウィジェットを探しましたが、何も見つかりません。