web-dev-qa-db-ja.com

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

現在ログインしているユーザーの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=?)
105
k44

まず、MIDDLEWARE_CLASSES設定にSessionMiddlewareおよびAuthenticationMiddlewareミドルウェアが追加されていることを確認してください。

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

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

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

if request.user.is_authenticated:
    # Do something for authenticated users.
else:
    # Do something for anonymous users.
170
K Z

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

request.user.id
17

Djangoの Auth User を参照していると仮定すると、ビューで:

def game(request):
  user = request.user

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