【发布时间】:2021-12-29 10:42:30
【问题描述】:
def get_queryset(self):
current_academic_year = get_current_academic_year()
domains = Domain.objects.all()
start_date = self.request.query_params.get("start_date", current_academic_year.start_date)
end_date = self.request.query_params.get("end_date", current_academic_year.end_date)
queryset = Account.objects.annotate(**{
f"domain_overall_{domain.uuid}": Avg(
"assessed_from__accountevaluationresult__calculated_rating",
filter=Q(
assessed_from__updated__range=(start_date, end_date)
) & Q(assessed_from__domain=domain)
)
for domain in domains
}).annotate(**{f"domains_total": ~query~
})
有五个域。 在这里,我得到了 5 个键值对,每个域都有特定的计算值。 我需要从第一个注释中获取这些值的总和,但不知道如何在连续注释中检索它。
我在 json 中需要的响应必须是这样的:
- “domain_overall_8939396e-d0a9-4c87-afe1-ae3a4660d84b”:2,
- “domain_overall_786a99b4-38fd-4b60-ac91-5a09f007db32”:1,
- "domain_overall_a1f503a7-5e77-47ee-a812-7ae1fb4e8a84": 1,
- “domain_overall_4c55b38b-8471-48d1-bc43-323570b290a4”:1,
- “domain_overall_6ec0c80b-5afe-4ac2-8c07-0fff5c4f023c”:3,
- “域总数”:8,
这里最好的方法/解决方案是什么?
【问题讨论】:
标签: django django-queryset django-orm