Django - Цепочка аннотированных кверисетов

Я пытаюсь составить цепочку из двух наборов запросов, которые имеют разные аннотированные значения на основе некоторых фильтров (которые упрощены в следующем фрагменте)

queryset = Location.objects.all()
queryset_1 = queryset.filter(dummy=True).annotate(weight=Value(1, IntegerField()))
queryset_2 = queryset.filter(dummy=False).annotate(weight=Value(0, IntegerField()))
queryset = queryset_1 | queryset_2

Однако, если я итерирую набор запросов и пытаюсь вывести вес, то он будет равен 1 для всего набора запросов

for p in queryset:
    print(p, p.weight)

5587798: <True> 1
5587810: <True> 1
5587811: <True> 1
5587819: <False> 1
5587823: <False> 1
5587824: <True> 1

Можно ли сохранить аннотированное значение, чтобы объекты с dummy=False имели аннотированное значение 0, а те, у которых оно установлено в true, имели аннотированное значение 1?

Вернуться на верх