我正在尝试使用django假设的PasswordResetForm功能为我的django应用程序创建密码重置表单。
我在 forms.py
中创建了一个表单class UserForgotPasswordForm(PasswordResetForm):
email = forms.EmailField(required=True,max_length=254)
class Meta:
model = User
fields = ("email")
我在 views.py 中设置view
时无法使用此表单,我目前有:
def UserResetPassword(request):
form = UserForgotPasswordForm(None, request.POST)
if request.method == 'POST':
if form.is_valid():
email = request.POST.get('email', '')
user =
我的 urls.py
urlpatterns = patterns('',
(r'^ForgotPassword/$',UserResetPassword),
)
由于我发现的文档很少且通常不直接使用PasswordResetForm
django功能,所以我有点失去了如何进一步使用它。
有人能伸出援手吗?
谢谢。
答案 0 :(得分:4)
我相信您需要做的就是调用form.save(),PasswordResetForm将生成一次性使用链接并将其通过电子邮件发送给用户。它查找匹配输入表单的电子邮件的用户。
所以它会是这样的:
def UserResetPassword(request):
form = UserForgotPasswordForm(None, request.POST)
if request.method == 'POST':
if form.is_valid():
form.save(from_email='blah@blah.com', email_template_name='path/to/your/email_template.html')
如果您没有指定电子邮件模板名称,django将只使用the default one。