Проверьте, имеет ли кверисет django одинаковое значение в определенном поле

Есть ли более простой способ проверить, имеет ли набор запросов одинаковое значение в определенном поле

class Subject(models.Model):
    name = models.CharField(max_length=15, blank=False)
    summary = models.CharField(max_length=200, blank=True)
    price = models.DecimalField(max_digits=6, decimal_places=2)
    is_finish = models.BooleanField(default=False)
y = Subject.objects.all()

как узнать, если y объектов, каждый из которых имеет is_finish == True без использования цикла for? Я просто хочу знать, что набор запросов дает мне одно и то же значение для поля is_finish.

На ваш вопрос есть несколько ответов:

Вариант 1:

y = Subject.objects.all()
graduate = all(x.is_finish for x in y)

Вариант 2:

y = Subject.objects.values_list('is_finish', flat=true)
graduate = all(y)

Вариант 3:

y = Subject.objects.exclude(is_finish=True).exists()
graduate = not y

Вариант 4:

y = Subject.objects.filter(is_finish=False).exists()
graduate = not y

Возьмите вариант, который лучше соответствует вашему коду.

Вернуться на верх