2017-10-12 50 views
0

假設我有以下Django模型一個Django模型查詢相關的數據:從2重或更多分離度

class Client(models.Model): 
    name = models.CharField(max_length=250) 

class Staff(models.Model): 
    name = models.CharField(max_length=250) 

class Agent(models.Model): 
    staff = models.ForeignKey(Staff, on_delete=models.CASCADE) 

class Writer(models.Model): 
    staff = models.ForeignKey(Staff, on_delete=models.CASCADE) 

class Order(models.Model): 
    client = models.ForeignKey(Client, on_delete=models.CASCADE) 
    agent = models.ForeignKey(Agent, on_delete=models.CASCADE) 
    writer = models.ForeignKey(Writer, on_delete=models.CASCADE) 

的模型之間的關係有以下條件:

  • 每個訂單可能只有一個客戶
  • 每個訂單可能只有一個代理
  • 每個訂單可能只有一個作家
  • 客戶可以有多個訂單
  • 一個代理可以有多個訂單
  • 一個作家可能寫了多個訂單

鑑於這些模型和參數,我怎麼能得到所有代理商或全部的列表過去與特定客戶合作過的作家?

我不知何故需要使用Python/Django從[客戶端]> [所有訂單]> [每訂單代理]進行查詢。

回答

0

這裏是這樣做了,例如所有代理的一個可能的方式:

orders = Order.objects.filter(client=client) 

agents = [] 
for order in orders: 
    agents.append(order.agent)