我有三张table
所有测试
报表格式
参数
alltests的reportformat作为foreignkey,具有一对一的关系。
class AllTests(models.Model):
id=models.AutoField(primary_key=True)
name=models.CharField(max_length=200)
reportFormat=models.ForeignKey(ReportFormat)
.....
.....
class Meta:
db_table = 'AllTests'
参数表的reportformat为foreignkey,关系太多。表示一种报表格式有多个参数。
class Parameter(models.Model):
id=models.AutoField(primary_key=True)
name=models.CharField(max_length=200)
reportFormat=models.ForeignKey(ReportFormat)
.....
.....
class Meta:
db_table = 'AllTests
报表格式table:-
class ReportFormat(models.Model):
id=models.AutoField(primary_key=True)
.....
.....
class Meta:
db_table = 'ReportFormat'
我想查询返回参数数据和相关测试数据的参数模型。请给我一个更好的方法。
我当前的查询是这样的。
from django.db.models import (
Sum, Value, Count, OuterRef, Subquery
)
data = Parameter.objects.filter(isDisable=0).values('id', 'name', 'reportFormat_id').annotate(
test=Subquery(Alltsets.objects.filter(reportFormat_id=OuterRef('reportFormat_id').values('id', 'name')))
)
2条答案
按热度按时间d7v8vwbk1#
全部提取
Parameter
以及AllTests
物体。使用查找参数的alltests对象reportFormat
现场。将相应的数据添加到parameter
口述。解决方案:
gudnpqoy2#
因为这两个表的report format列都引用reportformat表的同一列,所以您可以用下面的方式直接将它们关联起来。
也许是这样的?