Check if django queryset have the same value in specific field


Is there any easier way to check if the query set have same value in specific field

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()

how to know if y objects, each of them have is_finish == True without using for loop?
I just want to know that the queryset is giving me the same value for is_finish field.


They are several answers to your question:

Option 1:

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

Option 2:

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

Option 3:

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

Option 4:

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

Take the option matches better on your code.

Answered By – dani herrera

This Answer collected from stackoverflow, is licensed under cc by-sa 2.5 , cc by-sa 3.0 and cc by-sa 4.0

Leave a Reply

(*) Required, Your email will not be published