Django:如何获取当前用户的组ID

Rob*_*ert 3 django django-models django-admin django-views

我想知道如何在 views.py 中获取当前用户 ID?此外,如何获取当前用户的组 ID?我是否必须使用用户 id 直接查询数据库?非常感谢。

Pet*_*per 5

视图函数request作为它们的参数之一。假设您使用的是内置身份验证应用程序,当前用户(如果有)将为request.user. 如果会话没有登录用户,这可能是匿名用户的表示-如果您不想允许,请参阅文档

用户可以在许多组中,所以我不太确定您所说的“组 ID”是什么意思。用户组可作为标准的多对多字段使用,如request.user.groups. 这是一个管理器对象,因此您可以对其应用过滤器等 - 将它们全部获取,request.user.groups.all().


ily*_*yew 5

user = auth.get_user(request)
group = request.user.groups.values_list('name', flat=True).first()
Run Code Online (Sandbox Code Playgroud)

完美的作品!

所以你可以用'id'替换'name '来获取组的 ID