在 Django 中查询时如何对每个对象执行检查? 'QuerySet' 对象没有属性 'has_group_permission'

How to perform check on each object when querying in django? 'QuerySet' object has no attribute 'has_group_permission'

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

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

但是,当使用以下内容时 returned:

'QuerySet' object has no attribute 'has_group_permission'

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

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

valid_users = []

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