我有建立這樣的模型問題: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