[Fixed]-Django request.user.is_authenticated is always true?

51👍

Shouldn’t it be request.user.is_authenticated() i.e. with brackets as it’s a function?

For Django 1.10 +

is_authenticated is now an attribute (although it is being kept backwards compatible for now).

12👍

As Richard mentioned is_authenticated is a function, so in your view it should be called like: request.user.is_authenticated().

Because of django templating language there can be confusion, because calling this in a template makes it appear as a property and not a method.

{{ user.is_authenticated}}
https://docs.djangoproject.com/en/dev/topics/auth/

4👍

its changed again from Pull request #216.

now your problem is fixed, if you are using Django 2.0+, look at this GitHub issue is the same issues you had. so in Django 2.0+

request.user.is_authenticated

is true!

2👍

I’ve django 2.0, I tried this and works

if request.user.is_authenticated:

Leave a comment