Как получить идентификатор пользователя, вошедшего в систему пользователя в Django?

как получить идентификатор текущего зарегистрированного пользователя?

на models.py:

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

на views.py:

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

3 ответов


сначала убедитесь, что у вас есть SessionMiddleware и AuthenticationMiddleware middlewares добавлены в ваш MIDDLEWARE_CLASSES настройка.

текущего user находится в request объект, вы можете получить его:

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

request.user даст вам User объект, представляющий текущего пользователя. Если пользователь не вошел в систему, request.user будет установлен в экземпляр AnonymousUser. Вы можете различить их с is_authenticated(), например:

if request.user.is_authenticated():
    # Do something for authenticated users.
else:
    # Do something for anonymous users.

вы можете получить доступ к текущему зарегистрированному пользователю, используя следующий код:

request.user.id

предполагая, что вы имеете в виду Пользователь Auth, на ваш взгляд:

def game(request):
  user = request.user

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