我遇到了几个问题。首先,从 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/