在查询集中不起作用

问题描述 投票:0回答:1

我试图在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'不会在查询集上运行。

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

python django python-3.x
1个回答
2
投票

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

def is_contributor(request):

    return {
        'is_contributor': request.user.groups.filter(name='contributor')
    }
© www.soinside.com 2019 - 2024. All rights reserved.