如何在Django-AllAuth中自定义ResetPasswordForm

时间:2015-02-28 18:27:16

标签: python django django-allauth

我遇到了几个问题。首先,来自configuration section of the docs ......

ACCOUNT_FORMS (={})
Used to override forms, for example: {‘login’: ‘myapp.forms.LoginForm’}

我怎么知道放在这里的东西?我知道它需要像'password_reset_form':'myapp.forms.MyPasswordResetForm'这样的(键,值)对,但我怎么知道要使用的正确密钥呢?

其次,在我的forms.py中,我尝试将ResetPasswordForm扩展为

from allauth.account.forms import ResetPasswordForm

class MyResetPasswordForm(ResetPasswordForm):

    def __init__(self, *args, **kwargs):
        super().__init__(*args, **kwargs)

        # Override the email widget
        self.fields['email'].widget = forms.TextInput(attrs={'class':'form-control', 'type':'email', 'required':'required', 'placeholder':'Email'})

但这不断给我错误Error importing form class accounts.forms: "cannot import name 'ResetPasswordForm'"

对此提出任何建议或指示都将不胜感激。

1 个答案:

答案 0 :(得分:2)

我记得还遇到了第一个问题,并且很惊讶我在文档的任何地方都找不到它!我最终不得不浏览source code,您需要输入的键值在get_form_class函数的views.py文件中。

对于你的第二个问题,乍一看我不确定为什么它导致失败 - 它对我有用。

您使用的是什么版本的all-auth?