22.用户模块——忘记密码之密码修改功能

#users/urls.py
    url(r'^user_reset/(\w+)$',user_reset,name='user_reset'),

#users/views.py
def user_reset(request,code):
    if code:
        if request.method =='GET':
            return render(request,'password_reset.html')

#password_reset.html改为static
#<form id="reset_password_form" action="{% url 'users:user_reset' code %}" method="post">
#{% csrf_token %}
<p>
                {{ msg }}
                {% for key,err in user_reset_form.errors.items %}
                    {{ err }}
                {% endfor %}
            </p>

#users/forms.py
class UserResetForm(forms.Form):
    password = forms.CharField(required=True,min_length=3,max_length=15,error_messages={
        'required':'密码必须填写',
        'min_length':'密码至少3位',
        'max_length':'密码不能超过15位'
    })
    password1 = forms.CharField(required=True,min_length=3,max_length=15,error_messages={
        'required':'密码必须填写',
        'min_length':'密码至少3位',
        'max_length':'密码不能超过15位'
    })

#users/views.py
def user_reset(request,code):
    if code:
        if request.method =='GET':
            return render(request,'password_reset.html',{
                'code':code
            })
        else:
            user_reset_form = UserResetForm(request.POST)
            if user_reset_form.is_valid():
                password = user_reset_form.cleaned_data['password']
                password1 = user_reset_form.cleaned_data['password1']
                if password == password1:
                    email_ver_list = EmailVerifyCode.objects.filter(code=code)
                    if email_ver_list:
                        email_ver = email_ver_list[0]
                        email = email_ver.email
                        user_list = UserProfile.objects.filter(email=email)
                        if user_list:
                            user = user_list[0]
                            user.set_password(password1)
                            user.save()
                            return redirect(reverse('users:user_login'))
                        else:
                            pass
                    else:
                        pass
                else:
                    return render(request,'password_reset.html',{
                        'msg':'两次密码不一致',
                        'code':code
                    })
            else:
                return  render(request,'password_reset.html',{
                    'user_reset_form':user_reset_form,
                    'code':code
                })

猜你喜欢

转载自blog.csdn.net/qq_36227329/article/details/89395521
今日推荐