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=?)
Réponses:
Tout d' abord vous assurer que vous avez
SessionMiddleware
etAuthenticationMiddleware
intergiciels ajouté à votreMIDDLEWARE_CLASSES
réglage.Le courant
user
est dans l'request
objet, vous pouvez l'obtenir par:request.user
vous donnera unUser
objet représentant l'utilisateur actuellement connecté. Si un utilisateur n'est pas actuellement connecté,request.user
sera défini sur une instance deAnonymousUser
. Vous pouvez les distinguer avec le terrainis_authenticated
, comme ceci:la source
User
modèle .Vous pouvez accéder à l'utilisateur actuellement connecté à l'aide du code suivant:
la source
En supposant que vous faites référence à l' utilisateur d'authentification de Django , à votre avis:
la source
J'ai écrit ceci dans une vue ajax, mais c'est une réponse plus complète donnant la liste des utilisateurs actuellement connectés et déconnectés.
L'
is_authenticated
attribut retourne toujoursTrue
pour mes utilisateurs, ce qui, je suppose, est attendu car il ne vérifie que les utilisateurs anonymes, mais cela s'avère inutile si vous deviez dire développer une application de chat où vous devez afficher les utilisateurs connectés.Cela vérifie les sessions expirées, puis détermine à quel utilisateur elles appartiennent en fonction de l'
_auth_user_id
attribut décodé :la source