Джанго 1.10+
Используйте атрибут, а не метод:
if request.user.is_authenticated: # <- no parentheses any more!
# do something if the user is authenticated
Использование метода с тем же именем устарело в Django 2.0 и больше не упоминается в документации Django.
Обратите внимание, что для Django 1.10 и 1.11 значением свойства является a,
CallableBool
а не логическое значение, что может вызвать некоторые странные ошибки. Например, у меня было представление, которое вернуло JSON
return HttpResponse(json.dumps({
"is_authenticated": request.user.is_authenticated()
}), content_type='application/json')
что после обновления в собственность request.user.is_authenticated
выкидывалось исключение TypeError: Object of type 'CallableBool' is not JSON serializable
. Решением было использование JsonResponse, который мог правильно обрабатывать объект CallableBool при сериализации:
return JsonResponse({
"is_authenticated": request.user.is_authenticated
})