使用内置的AuthenticationForm时,Django-crispy-forms属性Error

时间:2013-04-05 23:04:19

标签: python django django-crispy-forms

我正在尝试使用django-crispy-forms在django中显示带有登录视图的内置AuthenticationForm。我有问题继承AuthenticationForm - 我得到一个AttributeError。错误说'WSGIrequest' object has no attribute 'get'.这是我的表单:

class LoginForm(AuthenticationForm):
    def __init__(self, *args, **kwargs):
        self.helper = FormHelper()
        self.helper.form_tag = False
        self.helper.layout = Layout(
            Field('username', placeholder="username"),
            Field('password', placeholder="password"),)
        super(AuthenticationForm, self).__init__(*args, **kwargs)

我认为这个错误与通过重定向获取的登录视图有关(我正在使用@login_required装饰器)。有没有人对如何使用django-crispy-forms子类化内置表单有任何想法并避免此错误?

1 个答案:

答案 0 :(得分:7)

您的表单中似乎有错误:

class LoginForm(AuthenticationForm):
    def __init__(self, *args, **kwargs):
        super(LoginForm, self).__init__(*args, **kwargs)
        self.helper = FormHelper()
        self.helper.form_tag = False
        self.helper.layout = Layout(
            Field('username', placeholder="username"),
            Field('password', placeholder="password"),
        )

您正在调用超级,传递父类AuthenticationForm而不是LoginForm