How do I check whether this user is anonymous or actually a user on my system?

def index(request):
    the_user = request.user

In Django, how do I know if it's a real user or not? I tried:

if the_user: but "AnonymousUser" is there even if no one logs in. So, it always returns true and this doesn't work.


You can check if request.user.is_anonymous returns True.


An Alternative to

if user.is_anonymous():
    # user is anon user

is by testing to see what the id of the user object is:

if user.id == None:
    # user is anon user
else:
    # user is a real user

see https://docs.djangoproject.com/en/dev/ref/contrib/auth/#anonymous-users


I know I'm doing a bit of grave digging here, but a Google search brought me to this page.

If your view def requires that the user is logged in, you can implement the @login_required decorator:

from django.contrib.auth.decorators import login_required

@login_required
def my_view(request):
    …