如何在 Django-AllAuth 中自定义 ResetPasswordForm
How do I customize the ResetPasswordForm in 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'"
如有任何建议或指导,我们将不胜感激。
我还记得 运行 第一个问题,很惊讶我在文档中找不到它!我最终不得不通过 source code 并且您需要输入的键值位于 get_form_class
函数的 views.py 文件中。
关于你的第二个问题,乍一看我不确定导入失败的原因 - 它适用于我。
您使用的是哪个版本的 all-auth?
以下是您可以自定义的所有表单:
ACCOUNT_FORMS = {
'login': 'allauth.account.forms.LoginForm',
'signup': 'allauth.account.forms.SignupForm',
'add_email': 'allauth.account.forms.AddEmailForm',
'change_password': 'allauth.account.forms.ChangePasswordForm',
'set_password': 'allauth.account.forms.SetPasswordForm',
'reset_password': 'allauth.account.forms.ResetPasswordForm',
'reset_password_from_key':
'allauth.account.forms.ResetPasswordKeyForm',
'disconnect': 'allauth.socialaccount.forms.DisconnectForm',
}
另外,您可以查看 docs 自己看看。
我 运行 遇到了几个问题。首先,从 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'"
如有任何建议或指导,我们将不胜感激。
我还记得 运行 第一个问题,很惊讶我在文档中找不到它!我最终不得不通过 source code 并且您需要输入的键值位于 get_form_class
函数的 views.py 文件中。
关于你的第二个问题,乍一看我不确定导入失败的原因 - 它适用于我。
您使用的是哪个版本的 all-auth?
以下是您可以自定义的所有表单:
ACCOUNT_FORMS = {
'login': 'allauth.account.forms.LoginForm',
'signup': 'allauth.account.forms.SignupForm',
'add_email': 'allauth.account.forms.AddEmailForm',
'change_password': 'allauth.account.forms.ChangePasswordForm',
'set_password': 'allauth.account.forms.SetPasswordForm',
'reset_password': 'allauth.account.forms.ResetPasswordForm',
'reset_password_from_key':
'allauth.account.forms.ResetPasswordKeyForm',
'disconnect': 'allauth.socialaccount.forms.DisconnectForm',
}
另外,您可以查看 docs 自己看看。