带有令牌参数的 Django 电子邮件验证 URL

我正在尝试创建电子邮件验证身份验证,但无法访问此 URL


127.0.0.1:8000/activate/d34324/KYJsqYMoV5DJ0vewSBdC9KZlZtnOAU7KE

如何为此代码创建正确的路由?


网址.py


url(r'^logout/$', OwnerRegister.logout_view),

url(r'^activate/(?P<uidb64>[0-9A-Za-z_\-]+)/(?P<token>[0-9A-Za-z]{1,13}-[0-9A-Za-z]{1,20})/$',OwnerRegister.activate,name='activate'),

视图.py


class OwnerRegister(TemplateView):

    template_name = "owner_register.html"


    def get_context_data(self, * args, ** kwargs):

        context = super(OwnerRegister, self).get_context_data()

        return context


    def logout_view(request):

        logout(request)

        return HttpResponseRedirect("/")


    def activate(request, uidb64, token):

        try:

            print('\n\n request',request)


            user_id = request.GET.get('uid')

            token = request.GET.get('token')

            user = User.objects.get(username=user_id)

            profile = OwnerInfo.objects.get(user=user)

            print(user.date_joined)


            if profile.confirmation_code == token and user.date_joined > (datetime.datetime.now()-datetime.timedelta(days=1)):

                print("test")

                user.is_active = True

                user.save()


                user.backend='django.contrib.auth.backends.ModelBackend' 

                auth_login(request,user)

                return HttpResponseRedirect('You have activated this account')

        except:

            return HttpResponseRedirect('')



def send_registration_confirmation(self,user,request):

    p = OwnerInfo.objects.get(user=user)

    current_site = get_current_site(request)

    content = current_site.domain+"/activate" +  user.username + "/" + str(p.confirmation_code) 

    send_mail("Email Verify", content, 'no-reply@gsick.com', [user.email], fail_silently=False)



12345678_0001
浏览 87回答 1
1回答
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python