views:

156

answers:

2

Hello all,

I've lost some time with a bug in my app due to user authentication. I think that it's a bit confusing but maybe someone can explain the reason and it will appear to me very logical.

The user.is_staff is a member variable while user.is_authenticated is a method. However is_authenticated only returns True or False depending if the class is User or AnonymousUser (see http://docs.djangoproject.com/en/dev/topics/auth/)

Is there a reason for that? Why user.is_authenticated is a method?

Thanks in advance

+4  A: 

Because is_staff is a database field and is_authenticated is not (since that would be strange). Maybe is_authenticated could be turned into a property, but django devs must have decided, that making it a function would be clearer.

gruszczy
A: 

is_authenticated() just checks that the user has provided a valid username and password. It would not allow to login user as guest user (If i am not wrong).

Praveen
Nope, is_authenticated is just False for anonymous and True and authenticated user. At least in the trunk ;-)
gruszczy