如何在 Django 管理员中为模型字段使用自定义表单字段?

Posted

技术标签:

【中文标题】如何在 Django 管理员中为模型字段使用自定义表单字段?【英文标题】:How to use custom form fields for model fields in the Django admin? 【发布时间】:2011-09-28 22:19:57 【问题描述】:

我想让 Django 管理员使用自定义表单字段来输入某些字段。

到目前为止,我创建了一个自定义模型字段,该字段绑定了表单字段,效果很好,但它引入了一个没有任何好处的不必要的模型字段。

我想可以使用自定义管理表单以某种方式完成(请参阅http://docs.djangoproject.com/en/dev/ref/contrib/admin/#adding-custom-validation-to-the-admin),但我不知道该怎么做。

【问题讨论】:

你对那个链接的例子有什么不明白的地方?似乎非常清楚:使用自定义字段定义您的表单,并将其设置为管理类的表单。有什么问题? 【参考方案1】:
class MyModelForm(forms.ModelForm):
    my_field = MyCustomFormField()

    class Meta:
        model = MyModel

class MyModelAdmin(admin.ModelAdmin):
    form = MyModelForm

【讨论】:

谢谢!这就像一个魅力。我不知道你可以覆盖表单字段。 其实这个方法行不通 -- 只对普通的Forms。如果想要覆盖ModelForm 上的字段,则必须在 Meta 类中完成。见docs.djangoproject.com/en/1.5/topics/forms/modelforms/… @jnns:很奇怪,ModelForm 部分几乎是从您链接的 Django 文档页面中逐字提取的。

以上是关于如何在 Django 管理员中为模型字段使用自定义表单字段?的主要内容,如果未能解决你的问题,请参考以下文章

如何从 django 模型中为模型字段定义 json 类型

如何在 django 模型表单中添加自定义字段?

如何在 Django REST 框架中为多对多字段定义“IsOwner”自定义权限?

如何在Django中为表单字段添加自定义标题?

如何在 Django 管理中的字段旁边添加自定义按钮?

Django Admin:仅对一个模型字段使用自定义小部件