在Django视图中,我认证并登录用户。但是,当我检查用户是否在另一个使用request.user.is_anonymous进行了身份验证的用户时,该用户是匿名的。
我查看了与此相关的所有其他问题,但是没有找到任何帮助。我正在使用jQuery / AJAX将数据发布到Django视图中,但是我已经检查并发送了正确的数据,因此我认为前端没有问题。
@csrf_exempt
def LoginView(request):
if request.method == 'POST':
form = LoginForm(request.POST)
if form.is_valid():
username = form.cleaned_data['username']
password = form.cleaned_data['password']
user = authenticate(request, username=username, password=password)
if user is not None and user.is_active:
login(request, user)
return JsonResponse({'logged_in' : 'yes'})
return JsonResponse({'logged_in' : 'no'})
我在浏览器中得到JSON响应logging_in:是,因此该用户已通过身份验证,但充当匿名登录用户。
这是我用来测试用户是否匿名的代码
@csrf_exempt
def ProfileView(request):
if request.method == 'GET':
if request.user.is_authenticated:
username = request.user.username
else:
username = request.user.is_anonymous
try:
user = Profile.objects.get(username=username)
name = user.name
age = user.age
return JsonResponse({'name' : name, 'age' : age})
except ObjectDoesNotExist:
return JsonResponse({'error' : username})