3

我正在尝试使用 django 假定的 PasswordResetForm 功能为我的 django 应用程序创建密码重置表单。

我在forms.py中创建了一个表单

class UserForgotPasswordForm(PasswordResetForm):
    email = forms.EmailField(required=True,max_length=254)
    class Meta:
        model = User
        fields = ("email")

我在设置viewinviews.py使用此表单时遇到问题,我目前有:

def UserResetPassword(request):
    form = UserForgotPasswordForm(None, request.POST)
    if request.method == 'POST':
        if form.is_valid():
            email = request.POST.get('email', '')
            user = 

我的网址.py

urlpatterns = patterns('',
    (r'^ForgotPassword/$',UserResetPassword),
)

我对如何进一步使用它有点茫然,因为我发现的文档很少,而且通常不直接使用PasswordResetFormdjango 功能。

有人可以帮忙吗?

谢谢你。

4

1 回答 1

5

我相信您需要做的就是调用 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 将只使用默认的.

于 2013-09-23T00:03:30.393 回答