157

現在ログインしているユーザーのIDを取得するには?

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=?)
4

6 に答える 6

269

まず、設定にミドルウェアが追加されていることを確認SessionMiddlewareAuthenticationMiddlewareますMIDDLEWARE_CLASSES

現在userrequestオブジェクト内にあり、次の方法で取得できます。

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

request.userUser現在ログインしているユーザーを表すオブジェクトが表示されます。ユーザーが現在ログインしていない場合はrequest.user、のインスタンスに設定されますAnonymousUseris_authenticated次のように、フィールドでそれらを区別することができます。

if request.user.is_authenticated:
    # Do something for authenticated users.
else:
    # Do something for anonymous users.
于 2012-09-27T06:17:26.323 に答える
26

次のコードを使用して、現在ログインしているユーザーにアクセスできます。

request.user.id
于 2016-07-24T12:18:36.597 に答える
8

あなたがDjangoの認証ユーザーを参照していると仮定すると、あなたの見解では:

def game(request):
  user = request.user

  gta = Game.objects.create(name="gta", owner=user)
于 2012-09-27T06:18:47.497 に答える