Django中检查用户是否在用户组里

  • 作者:牛肉盖饭
  • 分类: Django
  • 发表日期:2022-02-28 11:43:52
  • 阅读(1057)
  • 评论数(0)

您的用户对象通过多人关系链接到组对象。

因此,您可以将过滤器方法应用于用户组。

因此,要检查给定用户是否在某个组中(例如“成员”),请执行以下操作:

def is_member(user):
    return user.groups.filter(name='Member').exists()

如果要检查给定用户是否属于多个给定组,请使用运算符,如下所示:

def is_in_multiple_groups(user):
    return user.groups.filter(name__in=['group1', 'group2']).exists()

请注意,这些函数可与@user_passes_test装饰符一起使用,以管理对视图的访问:

from django.contrib.auth.decorators import login_required, user_passes_test
@login_required
@user_passes_test(is_member) # or @user_passes_test(is_in_multiple_groups)
def myview(request):
    # Do your processing

提交评论

您尚未登录,登陆之后方可评论 登录 or 注册

评论列表

暂无评论