您的用户对象通过多人关系链接到组对象。
因此,您可以将过滤器方法应用于用户组。
因此,要检查给定用户是否在某个组中(例如“成员”),请执行以下操作:
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 注册