求助,多表连查

<pre class="codehilite">class Demand(BaseModel): """ 需求 """ name = models.CharField(max_length=100, verbose_name="需求名称", help_text="需求名称") leader = models.CharField(max_length=100, verbose_name="负责人", help_text="负责人") desc = models.TextField(verbose_name="简要描述", help_text="简要描述", blank=True, null=True)

class Platform(BaseModel): """ 平台 """ name = models.CharField(max_length=100, unique=True, verbose_name="平台名称", help_text="平台名称")

class Case(BaseModel): """ 用例 """ name = models.CharField(max_length=100, verbose_name="用例名称", help_text="用例名称") leader = models.CharField(max_length=100, verbose_name="负责人", help_text="负责人") platform = models.ManyToManyField(Platform, verbose_name='平台', related_name="platform_bp", help_text='平台')

    demand = models.ForeignKey(Demand, on_delete=models.CASCADE, related_name=&quot;demand_bp&quot;, verbose_name=&quot;所属需求&quot;, help_text=&quot;所属需求&quot;)</code>&lt;/pre&gt;

<p>如上,有三张表,分别是:需求,平台,用例。 需求和用例是一对多的关系 用例和平台是多对多关系</p> <p>我想获取 属于这个平台的需求有哪些该? 用django怎么连表查询 原生的sql如下</p> <pre class="codehilite">select distinct demand_id, td.id, td.name, td.desc, td.leader, td.count, td.status, tp.name, tp.id from tb_Caset_platform as tcp join tb_Case tc on tcp.case_id = tc.id join tb_demands td on tbp.demand_id = td.id join tb_platform tp on tcp.platform_id = tp.id</pre>

评论 0