私は現在、この不自然なコードに似たモデルのセットがあります。ソート多対多フィールドは
class Pizza(models.Model):
price = models.FloatField()
topping = models.ManyToManyField(RouteGate, through="PizzaToppings")
class Topping(models.Model):
name = models.CharField(max_length=50)
class PizzaToppings(models.Model):
class Meta:
ordering=["order_to_add_topping"]
pizza = models.ForeignKey(Pizza)
topping = models.ForeignKey(Topping)
order_to_add_topping = models.IntegerField()
を私の問題は、私はピザのトッピングにアクセスしようとすると何が起こるかということですPizzaToppings ManyToMany追加フィールドテーブルで指定された注文。
>>> pizza = Pizza.objects.get(pk=490)
>>> pizza.toppings.all()[0].name
'Ham'
「チーズ」と言うべきです:ピザは、それぞれ0と1にセットPizzaToppingsデータでorder_to_add_toppingとチーズとハムを、持っていると仮定します。私は、RelationManagerがordering
メタクラスのフィールドを尊重していると思ったでしょうが、そうではないようです。だから私はピザに追加された最初のトッピングの名前にアクセスするのはpizza.toppings.all()[0].name
で終わるべきではないと思います。
どのようにアクセスする必要がありますか?モデルクエリーに問題があるのですか、またはモデルのセットアップ方法は?
ほとんどのライフセーバーが、テンプレートでこれをどうしますか?あなたのソリューションはコンソールベースです。コンソール上で私は[、
Timo
私はそれを得た。しかし、別の問題:トッピングに外部キーフィールドがあり、アクセス権が必要な場合は、これをどのようにして行いますか?例えば。トッピングはfkとして "リソース"を持ちます。それで、ピザを食べるだけなので、ピザ。トッピングはうまくいかない。 – Timo