1. 程式人生 > >[py][mx]django-解決註冊用戶已存在,激活鏈接判斷

[py][mx]django-解決註冊用戶已存在,激活鏈接判斷

字典 reg login inf email pos .com log 圖片

註冊時候,如果用戶已存在,則提示錯誤

激活用戶時候,如果激活鏈接失效,則提示用戶.

class RegisterView(View):
    def get(self, request):
        register_form = RegisterForm()  # 實例化register表單
        return render(request, 'register.html', {'register_form': register_form})

    def post(self, request):
        register_form = RegisterForm(request.POST)
        if register_form.is_valid():
            user_name = request.POST.get("email", "")  # 字典取值,如果無,賦值為空
            if UserProfile.objects.filter(email=user_name):  # 如果用戶存在 返回註冊頁面並提示
                return render(request, 'register.html', {'msg': '用戶已存在', 'register_form': register_form})
            pass_word = request.POST.get("password", "")

            user_profile = UserProfile()
            user_profile.username = user_name
            user_profile.email = user_name
            user_profile.password = make_password(pass_word)  # 密碼加密存儲
            user_profile.is_active = False
            user_profile.save()

            send_register_email(user_name, "register")
            return render(request, 'login.html')
        else:
            return render(request, 'register.html', {'register_form': register_form})


class ActiveView(View):  # 主要功能是修改user_profile裏的is_active字段為1
    def get(self, request, active_code):
        all_reocrds = EmailVerifyRecord.objects.filter(code=active_code)
        if all_reocrds:
            for record in all_reocrds:
                email = record.email
                user = UserProfile.objects.get(email=email)
                user.is_active = True
                user.save()
        else:#如果激活鏈接不存在,則返回激活失敗
            return render(request,"active_faild.html")
        return render(request, 'login.html')

技術分享圖片

[py][mx]django-解決註冊用戶已存在,激活鏈接判斷