我有以下模型结构:
class Pizza(models.Model):
name = models.CharField(max_length=50)
shop = models.CharField(max_length=50)
class Topping(models.Model):
name = models.CharField(max_length=50)
pizza = models.ManyToManyField(Pizza)
我想找到所有带有火腿或奶酪或两者的比萨饼,这是标准的 django 方式吗?: 从 django.db.models 导入 Q
Pizza.objects.filter(Q(topping__name='ham') | Q(topping__name='cheese'))
如果我有一个浇头列表,我该如何编程?
['ham','cheese']
最佳答案
你可以用 dicts 和 **kwargs 做到这一点,但没有必要:使用 __in
更容易:
topping_list = ['ham', 'cheese']
Pizza.objects.filter(topping__name__in=topping_list)
关于python - 带有Q和多个类别的django查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16104642/