ピザにはトッピングがあり、トッピングにはメーカーがあり、メーカーには名前があります。同じメーカーがすべてのトッピングを作成したとしましょう。クエリ内のall()[0]
はそうしかしドット表記を使用して、多対多の関係を通じてフィールドの値にアクセスするにはどうすればよいですか?
class Pizza(models.Model):
pizza = models.ManyToManyField(Topping)
class Topping(models.Model):
manufacturer = models.ForeignKey(Manufacturer)
class Manufacturer(models.Model):
name = models.CharField(max_length=255)
:これは、このようなモデルに基づいています
pizza.toppings.all()[0].manufacturer.name
:
は、私はこのようなクエリからメーカーの値を取得することができますよ醜い。それは次のようになりますので、上記のクエリを書き換えるためのどのような方法があります:
pizza.toppings.manufacturer.name
私は、クエリはそう単純ではないことができるように、複数のトッピングがあります理解しますが、恐ろしいall()[0]
ようです。
ご協力いただきありがとうございます。
残念私はモデルを変更できません。私は質問を簡素化しているので、理解しやすくなっています。問題は、ドット表記やドット表記と同様のものを使って、obj - >多対多の関係 - >外部キー - >フィールドに移動する方法です。 –