在 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)
我有这个 属性,我将使用它来 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)