求助,多表连查
<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="demand_bp", verbose_name="所属需求", help_text="所属需求")</code></pre>
<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