Если вы используете django.contrib.auth.forms.AuthenticationForm
или подобное, это, вероятно, связано с тем, что error_css_class
и required_css_class
(см. Документы) не установлены в классе Form
.
>>> 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
. Например. в вашем urls.py
:
(r'^accounts/login/$', 'django.contrib.auth.views.login',
{'authentication_form': MyForm}),