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=?) ```