我正在开发一个 Django 应用程序,其中很多模型都有外键和 m2m 关系。这导致ModelChoiceField
我的模型在 Django 管理中显示了许多。为了让模型选择更容易接受,我在我的项目中安装了 django-select2 应用程序。
我一直在尝试在管理站点在编辑相关对象时显示的内联表单中实现 select2,但该表单不呈现ModelSelect2Widget
(它呈现一个简单的选择;它甚至不包括 select2 库)。
我尝试的是创建一个覆盖ModelForm
相关forms.py
字段的小部件,然后使用inlineformset_factory
,有一个保存工厂类的变量。最后,在 中,使用类的属性admin.py
添加了我的自定义内联表单集。formset
InlineModelAdmin
表格.py
class FichaTecnicaForm(forms.ModelForm):
class Meta:
model = models.FichaTecnica
exclude = ('pelicula',)
widgets = {
'responsable': ModelSelect2Widget,
'cargo': ModelSelect2Widget,
'pais': ModelSelect2Widget
}
FichaTecnicaInline = inlineformset_factory(models.Pelicula, models.FichaTecnica, form=FichaTecnicaForm)
管理员.py
class FichaTecnicaInline(admin.TabularInline):
model = models.FichaTecnica
formset = forms.FichaTecnicaInline
extra = 0
# Some other code here
# This is where the inlines are invoked
class PeliculaAdmin(admin.ModelAdmin):
inlines = [
FichaTecnicaInline,
# some other inlines, not relevant...
]
我期望内联表单集会显示模型选择的 select2 小部件,但它显示的是标准选择小部件。
非常感谢您的帮助!