Reputation: 1915
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=?)
Upvotes: 187
Views: 360438
Reputation: 1
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 %}
Upvotes: 0
Reputation: 2731
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>
Upvotes: 2
Reputation: 51
Just go on your profile.html template and add a HTML tag named paragraph there,
<p>User-ID: {% user.id %}</p>
Upvotes: 0
Reputation: 35
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>
Upvotes: 0
Reputation: 30483
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.
Upvotes: 317
Reputation: 409
You can access Current logged in user by using the following code:
request.user.id
Upvotes: 31