开发者

Django form template

If there 开发者_如何学编程were field.errors in django, how to to add css class to {{ field }}, example at bottom

{% for field in form %}

{{ field }}

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

{% endfor %}

Aiming for {{ field }} input type that would have "class=error" when ever there was an error

<input class="error">


You can add the class to a wrapper around the field. Django also does this by itself when defining classes in forms.py or views.py

{% for field in form %}
<p {% if field.errors %}class="error"{% endif %}
{{ field }}
</p>
{% if field.errors %}{{ field.errors }}{% endif %}

{% endfor %}

Unfortunately this seems to be the only way. Even when Django adds the classes itselt, it prefers to add them to a wrapper of some sort.

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

Scroll down to read about the new thing in 1.2 about adding css classes. Using this, you can just use form.as_p (or whatever suits you) as the

elements will have all the classes as you define them. Hope this was a little bit of help.


You can use widget_tweaks api to do that.

Instead of rendering a form with

{{ form.field }} 

You should use:

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

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜