Django表单模板

时间:2010-08-17 07:12:21

标签: django django-forms

如果django中有field.errors,如何将css类添加到{{field}},示例在底部

{% for field in form %}

{{ field }}

{% if field.errors %}{{ field.errors }}{% endif %}

{% endfor %}

瞄准{{field}}输入类型,当出现错误时会出现“class = error”

<input class="error">

2 个答案:

答案 0 :(得分:4)

您可以将该类添加到字段周围的包装器中。 Django在forms.py或views.py

中定义类时也会自行完成
{% for field in form %}
<p {% if field.errors %}class="error"{% endif %}
{{ field }}
</p>
{% if field.errors %}{{ field.errors }}{% endif %}

{% endfor %}

不幸的是,这似乎是唯一的方法。 即使Django添加类itselt,它也更喜欢将它们添加到某种包装中。

http://docs.djangoproject.com/en/dev/ref/forms/api/#more-granular-output

向下滚动以阅读有关添加css类的1.2中的新内容。 使用它,您可以使用form.as_p(或任何适合您的),因为

元素将在您定义它们时具有所有类。 希望这有点帮助。

答案 1 :(得分:0)

你可以使用widget_tweaks api来做到这一点。

而不是使用

呈现表单
{{ form.field }} 

您应该使用:

{% load widget_tweaks %}
{% render_field form.field class="error" %}