在查询集中不起作用

时间:2018-03-14 09:06:31

标签: python django python-3.x

我试图在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'不能解决查询集。

在查询集中使用是否有限制?有更好的方法吗?

1 个答案:

答案 0 :(得分:2)

为什么不直接过滤该名称上的用户组?

def is_contributor(request):

    return {
        'is_contributor': request.user.groups.filter(name='contributor')
    }