Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Django-如果每个相关模型都满足一个条件,则从queryset中排除_Django_Django Models_Django Orm - Fatal编程技术网

Django-如果每个相关模型都满足一个条件,则从queryset中排除

Django-如果每个相关模型都满足一个条件,则从queryset中排除,django,django-models,django-orm,Django,Django Models,Django Orm,给定两个模型: class Pizza(models.Model): ... class Topping(models.Model): on_pizza = models.ForeignKey(Pizza, on_delete=models.CASCADE, related_name='toppings') name = models.CharField(max_length=50) spicy = models.BooleanField(default=Fal

给定两个模型:

class Pizza(models.Model):
   ...


class Topping(models.Model):
    on_pizza = models.ForeignKey(Pizza, on_delete=models.CASCADE, related_name='toppings')
    name = models.CharField(max_length=50)
    spicy = models.BooleanField(default=False)
我怎样才能排除所有比萨中每种配料的“辣”都设置为“假”的情况

所以,我想买一套比萨饼,每个比萨饼上至少有一个辣味配料

谢谢

也许吧

Pizza.objects.filter(toppings__spicy=True).distinct()
可能吧

Pizza.objects.filter(toppings__spicy=True).distinct()

由于已经发布了一些答案,我将对你们的比萨排名关系发表评论。您应该将其更改为一个
ManyToManyField
,这样您就可以将其与许多
Pizza
s关联起来,并避免为每个
Pizza
重复
top
s。只需看看文档中的一个示例。如果您将关系添加到
Pizza
model中,它也会更有意义是的,您是对的。我只是选择了这个例子来说明我的问题,这不是我的生产代码:)因为一些答案已经发布了,我将对你们的比萨配料关系发表评论。您应该将其更改为一个
ManyToManyField
,这样您就可以将其与许多
Pizza
s关联起来,并避免为每个
Pizza
重复
top
s。只需看看文档中的一个示例。如果您将关系添加到
Pizza
model中,它也会更有意义是的,您是对的。我只是选择这个例子来说明我的问题,它不是我的产品代码:)