披薩有澆頭,打頂有製造商,製造商有名稱。假設同一製造商創建所有澆頭。如何使用點符號通過多對多關係訪問字段的值?
我能夠從這樣的查詢得到製造商的價值:
pizza.toppings.all()[0].manufacturer.name
這是基於模型是這樣的:
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)
但是在查詢中all()[0]
似乎醜陋。有什麼辦法來重寫上面的查詢,所以它看起來是這樣的:
pizza.toppings.manufacturer.name
我明白有多個澆頭因此該查詢不能這麼簡單,而是all()[0]
似乎太可怕了。
感謝您的建議。
對不起,我不能更改模型。我正在簡化問題,以便更容易理解。問題是我該如何去obj - >多對多關係 - >外鍵 - >使用點符號或類似於點符號的字段。 –