检查django queryset在特定字段中是否具有相同的值
Check if django queryset have the 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()
如何在不使用 for 循环的情况下知道 y 个对象是否每个对象都具有 is_finish == True?
我只想知道查询集为 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
选择与您的代码更匹配的选项。
有没有更简单的方法来检查查询集在特定字段中是否具有相同的值
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()
如何在不使用 for 循环的情况下知道 y 个对象是否每个对象都具有 is_finish == True? 我只想知道查询集为 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
选择与您的代码更匹配的选项。