3

我正在尝试使用 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 对内置表单进行子类化并避免此错误有任何想法?

4

1 回答 1

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您正在调用 super,而不是传递父类LoginForm

于 2013-04-07T12:16:31.657 回答