2017-10-12 22 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)