В моем представлении 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 logged_in: yes в браузере, поэтому пользователь проходит проверку подлинности, но действует как анонимный зарегистрированный пользователь.
Вот код, который я использовал для проверки, является ли пользователь анонимным
@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})