How to get the currently logged in user's id in Django?

django, django-authentication, django-models, python, userid

Solution

First make sure you have `SessionMiddleware` and `AuthenticationMiddleware` middlewares added to your `MIDDLEWARE_CLASSES` setting.

The current `user` is in `request` object, you can get it by:

def sample_view(request):
    current_user = request.user
    print current_user.id

`request.user` will give you a `User` object representing the currently logged-in user. If a user isn't currently logged in, `request.user` will be set to an instance of `AnonymousUser`. You can tell them apart with the field `is_authenticated`, like so:

if request.user.is_authenticated:
    # Do something for authenticated users.
else:
    # Do something for anonymous users.

Problem

How to get the currently logged-in user's id? In `models.py`: ``` class Game(models.model): name = models.CharField(max_length=255) owner = models.ForeignKey(User, related_name='game_user', verbose_name='Owner') ``` In `views.py`: ``` gta = Game.objects.create(name="gta", owner=?) ```

Original source

Related problems