动态定制django表单小部件

时间:2011-01-20 05:59:45

标签: python django django-forms

具体来说,如果字段无效,我想添加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/

是否可以全局覆盖默认小部件模板?如果该字段是必需的,我希望有类似必需的类(或者html5需要attr),因此可以先用JavaScript验证它。随着新的html5输入类型的出现,我希望能够将type="number"用于整数字段。

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

修改 表格显然有required_css_classerror_css_class。但是,我使用的是modelForms,这似乎不起作用。

1 个答案:

答案 0 :(得分:1)

不幸的是,除了你已经使用标准django确定的黑客之外,没有简单的方法。

  

是否可以全局覆盖默认小部件模板?

django开发者正在讨论如何解决这个问题。

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

并在forms.py

中加入以下内容
from form_utils.forms import BetterModelForm as ModelForm