У меня есть 3 таблицы
- AllTests
- ReportFormat
- Параметр
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
Таблица ReportFormat: -
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')))
)