Как объединить более одного набора запросов в django
Я хотел бы объединить несколько наборов запросов и сохранить общий столбец под названием "line_nm". Я создал несколько queryset с формулой, для: день, неделя и год
models.py
class PbaSetOperator(models.Model):
work_ymd = models.DateField(blank=True, null=True)
line_nm = models.CharField(max_length=20, blank=True, null=True)
prodc_qty = models.IntegerField(blank=True, null=True)
work_mh = models.FloatField(blank=True, null=True)
in_house = models.FloatField(blank=True, null=True)
reduction = models.FloatField(blank=True, null=True)
views.py
set_operator_today = set_operator.filter(work_ymd = date).values('line_nm').order_by('line_nm').annotate(
set_operator_today_value=(480 * (Sum('in_house') / Sum('work_mh'))
set_operator_week = set_operator.filter(work_ymd__range = (getWeekStart(), getWeekEnd())).values('line_nm').order_by('line_nm').annotate(
set_operator_week_value=(480 * (Sum('in_house') / Sum('work_mh'))
set_operator_year = set_operator.filter(work_ymd__range = (getYearStart(), geYearEnd())).values('line_nm').order_by('line_nm').annotate(
set_operator_year_value=(480 * (Sum('in_house') / Sum('work_mh'))
Ожидаемый результат - набор запросов, как показано ниже:
'line_nm':01, 'set_operator_today_value':100, 'set_operator_week_value':110, 'set_operator_year':115
Как я могу это сделать?
Я пробовал использовать метод цепочки в itertools и преобразовывать в список, но безуспешно.
Существует общий столбец под названием "line_nm", и я хочу использовать его как левое соединение.
Наборы запросов могут быть объединены с помощью оператора |:
qury= set_operator_today| set_operator_week | set_operator_year # merge querysets
примечание: важно отметить, что оператор merge/combine | работает только на кверисетах из той же модели и до ее нарезки.