我需要获取我在模板中呈现的表单上的字段的css类。现在根据文档here循环遍历表单时,每个项目都应该是BoundField
个实例。并且根据文档here,我应该可以访问该实例的css_classes属性。
对于通用登录视图,我创建了通常的registration\login.html
模板。但是在模板上我无法输出任何类,默认标签(.label_tag
)也不包含任何类。
继承人的形式包括:
<div class="default_form">
{{form.non_field_errors}}
<br />
{% for field in form %}
{{field.css_classes}}
<div class="field_container">{{field.label_tag}}{{field}}</div>
<span class="field_help">{{field.help_text}}</span>
<div class="field_errors">{{field.errors}}</div>
<br />
{% endfor %}
我在这里做错了吗?
我需要我的验证javascripts的类才能工作。
答案 0 :(得分:0)
如果您使用的是django.contrib.auth.forms.AuthenticationForm
或类似内容,可能是因为error_css_class
类required_css_class
和Form
(see docs)未设置。
>>> from django.contrib.auth.forms import AuthenticationForm
>>> hasattr(AuthenticationForm, 'required_css_class')
False
>>> AuthenticationForm({})['username'].css_classes()
''
>>> class MyForm(AuthenticationForm):
... error_css_class = 'error'
... required_css_class = 'required'
...
>>> MyForm({})['username'].css_classes()
'required'
您可以通过继承上述示例中的表单来解决此问题。
请注意,如果您希望使用标准login
视图,则需要通过authentication_form
argument传递自定义表单。例如。在urls.py
:
(r'^accounts/login/$', 'django.contrib.auth.views.login',
{'authentication_form': MyForm}),