我正在使用django-registration。我想更新'django.contrib.auth.forms'中的AuthenticationForm。具体来说,我想传递'attrs'字典来添加一些属性。如何更新django附带的表单?
答案 0 :(得分:2)
您可以使用auth附带的视图,并使用您自己的表单覆盖表单参数:
django.contrib.auth.views.login(request[, template_name, redirect_field_name, authentication_form])
更多信息here。
答案 1 :(得分:1)
标准方法是继承AuthenticationForm,更改构造函数中的attrs,将表单传递给登录视图并在urls.py中写入新条目。
这是一场噩梦:为了将html属性添加到字段中,必须使用python子类化,以了解django的表单元类的工作原理(self.fields['field'].widget.attrs
,而不仅仅是self.field.widget.attrs
),知道regexes(对于urls.py),知道django的urls.py是如何工作的(你应该在include('django.contrib.auth.urls')
之后放置重写行吗?)并知道从哪里导入auth表单和auth视图。
现在是“商业休息”:只需使用http://pypi.python.org/pypi/django-widget-tweaks来完成任务;)