如果我有一个包含一堆对象的查询集,是否有一种简单的方法来检查所有这些对象的属性是否包含指定值?
my_queryset = Employees.objects.filter(team='East1')
现在,我要检查所有这些员工是否具有cost_centre ='E150'。 目前,我正在遍历整个查询集。
答案 0 :(得分:3)
您可以检查是否有Employee
与cost_centre
不同的'E150'
:
assert not Employees.objects.filter(
team='East1'
).exclude(cost_centre='E150').exists()
因此,如果这里有一个元素,则意味着至少有一名员工没有将'E150'
设为cost_center
。
您可以通过以下方式获取Employee
:
Employees.objects.filter(
team='East1'
).exclude(cost_centre='E150')
,您可以使用以下方法将所有员工更新为该cost_center
(如果您想这样做):
Employees.objects.filter(
team='East1'
).update(cost_centre='E150')