我有建立这样的模型问题:Django的查询)
class Topping(models.Model):
name = models.CharField(max_length=30)
class Pizza(models.Model):
cook = models.ForeignKey(Cook)
name = models.CharField(max_length=50)
toppings = models.ManyToManyField(Topping)
我想选择他的比萨饼使用提供厨师所有浇头。
在SQL我可以使用select * from Toppings t where t.id IN(select topping_id from Pizzas where cook_id = ?)
或其他方式(肯定更高效:P)。问题是我必然会使用django模型,因为基础依赖关系,比如分页。
因为它是由许多应用程序使用的数据库将是巨大的,如果它可以在不改变模式来完成...
稍微offtopic,但可能会帮助你在你的工作,你也可以找到所有的反向链路在许多到许多的特定对象,例如some_topping.pizza_set.all()给出所有使用该主题的比萨饼,只要确保isinstance(some_topping,Topping) – 2012-04-19 14:07:40