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

313πŸ‘

βœ…

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.
πŸ‘€K Z

30πŸ‘

You can access Current logged in user by using the following code:

request.user.id

8πŸ‘

Assuming you are referring to Django’s Auth User, in your view:

def game(request):
  user = request.user

  gta = Game.objects.create(name="gta", owner=user)
πŸ‘€Neil

2πŸ‘

FROM WITHIN THE TEMPLATES

This is how I usually get current logged in user and their id in my templates.

<p>Your Username is : {{user}} </p>
<p>Your User Id is  : {{user.id}} </p>

0πŸ‘

This is how I usually get current logged in user and their id in my templates.

<p>Your Username is : {{user|default: Unknown}} </p>
<p>Your User Id is  : {{user.id|default: Unknown}} </p>

0πŸ‘

Just go on your profile.html template and add a HTML tag named paragraph there,

<p>User-ID: {% user.id %}</p>

0πŸ‘

You can use HttpRequest.user and get_user(request) to get the id of the logged-in user in Django Views as shown below:

# "views.py"

from django.shortcuts import render
from django.contrib.auth import get_user # Here

def test(request):
    print(request.user.id) # 32
    print(get_user(request).id) # 32
    return render(request, 'index.html')

And, you can get the id of the logged-in user in Django Templates as shown below:

{% "index.html" %}

{{ user.id }} {% 32 %}

Leave a comment