Джанго 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
})