Объединение двух наборов запросов в Django ORM
Я пишу представление, которое возвращает следующее:
[
{
"field_id" : 1,
"stock" : [
{
"size" : "M",
"total" : 3
}
],
"reserved" : [
{
"size" : "M",
"total" : 1
}
]
},
{
"field_id" : 2,
"stock" : [
{
"size" : "M",
"total" : 2
},
{
"size" : "PP",
"total" : 2
}
],
"reserved" : [
{
"size" : "PP",
"total" : 1
},
{
"size" : "M",
"total" : 2
}
]
}
]
Для этого результата я использовал values
и annotation
(django orm):
reserved = Reserved.objects.all().values("size").annotate(total=Count("size")).order_by("total")
stock = Stock.objects.filter(amount=0).values('size').annotate(total=Count('size')).order_by('total'))
Это нормально для меня, но я хотел бы поместить кверисет reserved
внутри stock
. Например, так:
[
{
"field_id" : 1,
"stock" : [
{
"size" : "M",
"total" : 3,
"reserved": 1
}
],
},
{
"field_id" : 2,
"stock" : [
{
"size" : "M",
"total" : 2,
"reserved": 1
},
{
"size" : "PP",
"total" : 2,
"reserved": 0
}
],
}
]
Возможно ли это? Резерв и запас не имеют отношения.