如何获取当前登录的用户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设置中添加了SessionMiddlewareAuthenticationMiddleware个中间件.

当前的userrequest对象中,可以通过以下方式获取:

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.

Django相关问答推荐

查询在对象中使用django查询与一个包含句子

Django中的Sync_to_Async修饰器、异步视图

覆盖保存以创建范围的多个对象()

为特定表行更新或创建

在Django ORM中引用非主外键

Django-admin 显示decorator 按多列排序

带有变量键的 Django 模板括号表示法不起作用

为什么 timezone.now 在作为默认值应用于 Django 中的 DateField 时显示future 日期

设置 SECURE_HSTS_SECONDS 可以不可逆转地 destruct 您的网站?

如何获得用户权限?

Django:使用 Django ORM 实现 JOIN?

为 Django 模型生成非顺序 ID/PK

Django判断字段是否为空?

为用户添加自定义权限

UnicodeEncodeError:ascii编解码器无法编码字符

我应该如何在我的模型中使用 DurationField?

在 Django 中测试different layers的最佳实践是什么?

django-rest-framework 接受 JSON 数据?

Django admin:使字段在添加中可编辑但不可编辑

在 Django 中查询 top x 元素