【问题标题】:How to perform check on each object when querying in django? 'QuerySet' object has no attribute 'has_group_permission'在django中查询时如何对每个对象进行检查? 'QuerySet' 对象没有属性 'has_group_permission'
【发布时间】:2020-11-05 03:46:38
【问题描述】:

我有这个属性,我将使用它来返回具有给定权限的所有用户:

@property
def assignable(self):
    return User.objects.all().has_group_permission('help_desk', 'ticket', 'view', self.group)

但是,使用时会返回以下内容:

'QuerySet' object has no attribute 'has_group_permission'

理论上,我对从 User.objects.all() 返回的每个对象使用函数 has_group_permission 并检查它是否具有所需的权限。但这显然行不通。有什么解决方案?

【问题讨论】:

    标签: django django-models django-queryset


    【解决方案1】:

    User.objects.all() 返回一个查询集。您将需要遍历查询集并编译用户列表。另外,如果这是模型上的属性,我不确定您是否可以返回列表。

    valid_users = []
    
    for user in User.objects.all():
      if user.has_group_permission('help_desk', 'ticket', 'view', self.group):
        valid_users.append(user)
    

    【讨论】:

    • 我认为可能是这种情况
    猜你喜欢
    • 1970-01-01
    • 2020-10-31
    • 2021-08-05
    • 2017-06-22
    • 2013-05-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-14
    相关资源
    最近更新 更多