![](/img/trans.png)
[英]Django request.user become AnonymousUser after third party redirect
[英]Django can't identify the user after registering an account *AnonymousUser*
所以目标是让新用户注册一个帐户,然后重定向到主页并被识别。 这样用户就不必注册他们的帐户,然后立即进行登录过程。 我想要标准注册,例如 Instagram、Twitter 和其他专业应用程序。
到目前为止,我是用户可以注册并将他们重定向到主页的地方,但是当我尝试在屏幕上打印他们的名字时,我得到了 AnonymousUser。 用户信息注册后写入数据库,但Django不知道用户是谁。 为了让 Django 在注册后知道谁登录,他们必须在注册他们的帐户后注销然后登录。 如果有人可以提供帮助,我将不胜感激。
视图.py
from django.shortcuts import render, redirect
from .forms import RegisterForm
from django.contrib import messages
def register(response):
if response.method == "POST":
form = RegisterForm(response.POST)
if form.is_valid():
form.save()
return redirect("/")
else:
form = RegisterForm()
return render(response, "register/register.html", {"form": form})
使用 authentication() 和 login() 函数:
from django.contrib.auth import authenticate, login
def register(request):
if request.method == 'POST':
form = UserCreationForm(request.POST)
if form.is_valid():
new_user = form.save()
messages.info(request, "Thanks for registering. You are now logged in.")
new_user = authenticate(username=form.cleaned_data['username'],
password=form.cleaned_data['password1'],
)
login(request, new_user)
return HttpResponseRedirect("/dashboard/")
注册成功后POST REQUEST使用登录方法显式登录用户,您可以访问用户名,而无需用户再次登录...
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.