¿Cómo obtener la identificación del usuario actualmente conectado?
en models.py
:
class Game(models.model):
name = models.CharField(max_length=255)
owner = models.ForeignKey(User, related_name='game_user', verbose_name='Owner')
en views.py
:
gta = Game.objects.create(name="gta", owner=?)
Respuestas:
Primero asegúrese de tener
SessionMiddleware
yAuthenticationMiddleware
middlewares agregados a suMIDDLEWARE_CLASSES
configuración.La corriente
user
está en elrequest
objeto, puede obtenerla:request.user
le dará unUser
objeto que representa al usuario actualmente conectado. Si un usuario no está conectado actualmente,request.user
se establecerá en una instancia deAnonymousUser
. Puede distinguirlos con el campois_authenticated
, así:fuente
User
modelo .Puede acceder al usuario registrado actualmente utilizando el siguiente código:
fuente
Suponiendo que se refiere al usuario de autenticación de Django , en su opinión:
fuente
Escribí esto en una vista ajax, pero es una respuesta más amplia que da la lista de usuarios actualmente conectados y desconectados.
El
is_authenticated
atributo siempre devuelveTrue
para mis usuarios, lo que supongo que es de esperar, ya que solo busca AnonymousUsers, pero eso resulta inútil si tuviera que desarrollar una aplicación de chat donde necesita que se muestren los usuarios registrados.Esto comprueba las sesiones caducadas y luego determina a qué usuario pertenecen en función del
_auth_user_id
atributo decodificado :fuente