Я искал способ объединить наборы запросов в django. Из того, что я прочитал, вы можете использовать query1 | query2 для получения объединения ... Это, похоже, не работает при использовании values (). Я бы пропускал использование значений до тех пор, пока не будет получено объединение, но мне нужно использовать аннотирование, чтобы взять сумму поля и отфильтровать ее, и, поскольку нет способа выполнить «группирование по», я должен использовать values (). Другие предложения, которые я прочитал, состояли в том, чтобы использовать объекты Q, но я не могу придумать, как это сработало бы.
Нужно ли мне просто использовать прямой SQL или есть способ django сделать это?
То, что я хочу, это:
q1 = mymodel.objects.filter(date__lt = '2010-06-11').values('field1','field2').annotate(volsum=Sum('volume')).exclude(volsum=0)
q2 = mymodel.objects.values('field1','field2').annotate(volsum=Sum('volume')).exclude(volsum=0)
query = q1|q2
Но это не работает, и, насколько я знаю, мне нужна часть "значения", потому что у Сум нет другого способа узнать, как действовать, поскольку это таблица из 15 столбцов.