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

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

我怎么知道在这里放什么?我知道它需要像 'password_reset_form':'myapp.forms.MyPasswordResetForm' 这样的 (key, value) 对,但我怎么知道要使用的正确 key ?

其次,在我的 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'"
对此的任何建议或方向将不胜感激。

最佳答案

我记得我也遇到了第一个问题,很惊讶我在文档中找不到它!我最终不得不通过 source code 并且您需要放置的键值位于 get_form_class 函数中的 views.py 文件中。

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

你用的是什么版本的全认证?

关于python - 如何在 Django-AllAuth 中自定义 ResetPasswordForm,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/28785265/

10-12 12:36