有没有一种简单的方法来检查查询集中的所有属性是否都具有相同的值?

时间:2020-04-18 14:48:40

标签: python django

如果我有一个包含一堆对象的查询集,是否有一种简单的方法来检查所有这些对象的属性是否包含指定值?

my_queryset = Employees.objects.filter(team='East1')

现在,我要检查所有这些员工是否具有cost_centre ='E150'。 目前,我正在遍历整个查询集。

1 个答案:

答案 0 :(得分:3)

您可以检查是否有Employeecost_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')