【发布时间】:2020-10-28 18:10:11
【问题描述】:
鉴于这些模型(餐厅有很多比萨,而比萨有很多浇头)
class Restraunt(Model)
class Topping(Model):
name = Charfield()
class Pizza(Model):
in_resteraunt = ForeignKey(Resteraunt)
toppings = ManyToMany(topping, related_name='on_pizza')
我试图弄清楚如何:给定一家餐厅,在所有比萨饼中,最常见的浇头是什么?
我想出的一件事是这样的(其中 R = 餐厅)
Topping.objects.filter(on_pizza__restaurant=R).annotate(the_count=Count('on_pizza')).order_by('-the_count')[0]
这里的问题是我不确定 on_pizza 是否对 Restaurant 对象是唯一的,基本上一个浇头对象可以在多个餐厅的披萨上,我需要它是唯一的。 这里我从 Topping 开始,有没有一种方法可以从披萨查询集开始?
我研究了子查询表达式,但不知道如何实现
【问题讨论】:
-
好吧,它只会考虑该餐厅的
Toppings,并过滤比萨饼。所以是的,这会起作用。
标签: python mysql django database