Skip to main content
 首页 » 编程设计

python之动态自定义 django 表单小部件

2025年05月04日22jpfss

具体来说,如果字段无效,我想添加一个 error 类。所以它会像这样呈现:

<input type="text" name="email" class="error" /> 

这个例子看起来很老套,我还没有看到任何其他例子来说明如何实现这一点。

http://jj.isgeek.net/2010/10/27/add-error-class-to-widgets-with-errors-in-django-forms/

是否可以全局覆盖默认的小部件模板?如果该字段是必需的,我希望有像 required(或 html5 required attr)这样的类,这样它就可以首先用 JavaScript 进行验证。随着新的 html5 输入类型的出现,我希望能够使用 type="number" 作为整数字段。

我已经阅读了这些文档,但没有太大帮助。 http://docs.djangoproject.com/en/dev/ref/forms/widgets/#customizing-widget-instances

编辑 显然,表单有一个 required_css_class 和 error_css_class。但是,我使用的是 modelForms,这似乎不起作用。

请您参考如下方法:

不幸的是,除了您已经使用标准 django 确定的 hack 之外,没有其他简单的方法。

Is it possible to globally override the default widget templates?

django 开发人员正在争论如何解决这个问题。

目前,最吸引您的解决方案应该是使用 django 核心开发人员 Carl 的外部包:django-form-utils ,它允许您覆盖模板、包含任意类并包含字段集。

并且,在您的 forms.py

中包含以下内容
from form_utils.forms import BetterModelForm as ModelForm