Jak uzyskać identyfikator aktualnie zalogowanego użytkownika?
w models.py
:
class Game(models.model):
name = models.CharField(max_length=255)
owner = models.ForeignKey(User, related_name='game_user', verbose_name='Owner')
w views.py
:
gta = Game.objects.create(name="gta", owner=?)
Odpowiedzi:
Po pierwsze upewnij się, że
SessionMiddleware
iAuthenticationMiddleware
middleware dodany doMIDDLEWARE_CLASSES
ustawienia.Prąd
user
jest wrequest
obiekcie, możesz go uzyskać przez:request.user
da ciUser
obiekt reprezentujący aktualnie zalogowanego użytkownika. Jeśli użytkownik nie jest aktualnie zalogowany,request.user
zostanie ustawiony na instancjęAnonymousUser
. Możesz je odróżnić za pomocą polais_authenticated
, na przykład:źródło
User
modelu .Dostęp do aktualnie zalogowanego użytkownika można uzyskać za pomocą następującego kodu:
źródło
Zakładając, że odnosisz się do użytkownika uwierzytelniającego Django , Twoim zdaniem:
źródło
Napisałem to w widoku Ajax, ale jest to bardziej rozbudowana odpowiedź, podająca listę aktualnie zalogowanych i wylogowanych użytkowników.
is_authenticated
Atrybutów zawsze zwracaTrue
dla moich użytkowników, co przypuszczam jest spodziewane, ponieważ sprawdza tylko AnonymousUsers, ale to okaże się bezużyteczne, jeśli było powiedzieć opracować aplikację czat gdzie trzeba zalogowanych użytkowników wyświetlana.To sprawdza, czy sesje wygasły, a następnie określa, do którego użytkownika należą na podstawie zdekodowanego
_auth_user_id
atrybutu:źródło