Есть ли простой способ проверить, все ли свойства в наборе запросов имеют одинаковое значение? - PullRequest
3 голосов
/ 18 апреля 2020

Если у меня есть Queryset, содержащий набор объектов, есть ли простой способ проверить, что свойство всех этих объектов содержит указанное значение?

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

Теперь я хотите убедиться, что все эти сотрудники имеют cost_centre = 'E150'. На данный момент я делаю все oop через набор запросов.

1 Ответ

3 голосов
/ 18 апреля 2020

Вы можете проверить, есть ли такой Employee, у которого cost_centre отличается от 'E150':

assert not Employees.objects.filter(
    team='East1'
)<b>.exclude(cost_centre='E150').exists()</b>

Так что если здесь есть элемент, то это означает, что есть хотя бы один сотрудник, который не имеет 'E150' как cost_center.

. Вы можете получить Employee s с:

Employees.objects.filter(
    team='East1'
)<b>.exclude(cost_centre='E150')</b>

, и вы можете обновить всех сотрудников до cost_center (если Вы хотите сделать это) с:

Employees.objects.filter(
    team='East1'
)<b>.update(cost_centre='E150')</b>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...