3

次のように構築されたモデルに問題があります。

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 モデルを使用する必要があることです。

多くのアプリで使われているデータベースなので、機種変更せずにできるといいのですが…

4

1 に答える 1

4
Topping.objects.filter(pizza__cook=mycook)
于 2012-04-19T13:50:09.990 に答える