我想更改管理站点中外键的“+”图标的显示方式。
我发现打印代码的小部件是RelatedFieldWidgetWrapper
这是在 django/contrib/admin/widgets.py
.
所以我写了这个类的版本,我改变了它的 render
功能。
但是现在我该如何使用它?我的意思是……在我的模型定义中,我是否必须使用 formfield_overrides
通过这种方式?
formfield_overrides = {
models.ForeignKey: {'widget': customRelatedFieldWidgetWrapper},
}
我认为这不是正确的方法,因为该小部件不是管理整个外键的小部件,而只是“+”图标。
我错了吗?
非常感谢。
最佳答案
您需要为 ModelAdmin 创建自定义 ModelForm 并在那里覆盖小部件。
示例代码:
#forms.py
class CustomForm(forms.ModelForm):
user = forms.ModelChoiceField(queryset=User.objects.all(), widget=yourCustomWidget)
class Meta:
model = MyModel
#admin.py
class MyModelAdmin(admin.ModelAdmin):
form = CustomForm
关于Django:覆盖RelatedFieldWidgetWrapper,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2156028/