Como obter o ID do usuário atualmente conectado?
em models.py
:
class Game(models.model):
name = models.CharField(max_length=255)
owner = models.ForeignKey(User, related_name='game_user', verbose_name='Owner')
em views.py
:
gta = Game.objects.create(name="gta", owner=?)
Respostas:
Primeiro certifique-se que você tem
SessionMiddleware
eAuthenticationMiddleware
middlewares adicionado à suaMIDDLEWARE_CLASSES
configuração.A corrente
user
está norequest
objeto, você pode obtê-lo por:request.user
fornecerá umUser
objeto que representa o usuário conectado no momento. Se um usuário não estiver conectado no momento,request.user
será definido como uma instância deAnonymousUser
. Você pode diferenciá-los do campois_authenticated
, assim:fonte
User
modelo .Você pode acessar o usuário conectado atual usando o seguinte código:
fonte
Supondo que você esteja se referindo ao usuário de autenticação do Django , na sua opinião:
fonte
Eu escrevi isso em uma exibição ajax, mas é uma resposta mais abrangente, fornecendo a lista de usuários atualmente conectados e desconectados.
O
is_authenticated
atributo sempre retornaTrue
para meus usuários, o que, suponho, é esperado, uma vez que apenas verifica AnonymousUsers, mas isso é inútil se você disser que desenvolva um aplicativo de bate-papo no qual os usuários logados precisam exibir.Isso verifica as sessões expiradas e descobre a qual usuário pertence, com base no
_auth_user_id
atributo decodificado :fonte