我试图在Django中使用内置的Groups系统来判断用户是否属于某个组而不是该模板:
def is_contributor(request):
group = Group.objects.get_or_create(name='contributor')
return {
'is_contributor': True if group in request.user.groups.all() else False
}
即使用户是该组的一部分,以下内容也会传递False。具体来说,如果我通过以下内容:
request.user.groups.all()
我明白了:
<QuerySet [<Group: contributor>]>
这使我相信在这种情况下'in'不能解决查询集。
在查询集中使用是否有限制?有更好的方法吗?
答案 0 :(得分:2)
为什么不直接过滤该名称上的用户组?
def is_contributor(request):
return {
'is_contributor': request.user.groups.filter(name='contributor')
}