現在ログインしているユーザーの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=?)
まず、MIDDLEWARE_CLASSES
設定にSessionMiddleware
およびAuthenticationMiddleware
ミドルウェアが追加されていることを確認してください。
現在の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
Djangoの Auth User を参照していると仮定すると、ビューで:
def game(request):
user = request.user
gta = Game.objects.create(name="gta", owner=user)