web-dev-qa-db-fra.com

Comment obtenir l'identifiant de l'utilisateur actuellement connecté dans Django?

Comment obtenir l'identifiant de l'utilisateur actuellement connecté?

dans models.py:

class Game(models.model):
    name = models.CharField(max_length=255)
    owner = models.ForeignKey(User, related_name='game_user', verbose_name='Owner')

dans views.py:

gta = Game.objects.create(name="gta", owner=?)
105
k44

Tout d’abord, assurez-vous d’avoir ajouté les middlewares SessionMiddleware et AuthenticationMiddleware à votre paramètre MIDDLEWARE_CLASSES.

Le user actuel est dans l'objet request, vous pouvez l'obtenir par:

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

request.user vous donnera un objet User représentant l'utilisateur actuellement connecté. Si aucun utilisateur n'est actuellement connecté, request.user sera défini sur une instance de AnonymousUser. Vous pouvez les distinguer avec le champ is_authenticated, comme suit:

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

Vous pouvez accéder à l'utilisateur actuellement connecté en utilisant le code suivant:

request.user.id
17
sriram veeraghanta

En supposant que vous vous référiez à Django Auth User , à votre avis:

def game(request):
  user = request.user

  gta = Game.objects.create(name="gta", owner=user)
7
Neil