Вложенная аннотация в Django View и сериализаторы
У меня есть сценарий использования, где я хочу иметь данные в следующем формате.
{
"total_discount_amount": 0,
"total_paid": 0,
"total_billed": 0,
"visits": "string"
"users_summary": [
{
"id": "string",
"date": "string",
"total_discount_amount": 0,
"total_paid": 0,
"total_billed": 0,
"visits": "string"
}
]
}
Внешняя часть данных является суммой данных списка users_summary.
class Test(generics.ListAPIView):
queryset = Model.objects.all()
serializer_class = SummarySerializer
def list(self, request, *args, **kwargs):
data =Model.objects.values('user').annotate(visits=Count('user'),total_discount_amount=Sum('model__amount', total_paid = Sum('model__paid_amnt',total_billed = Sum('model__bill_amnt').filter()
serializer = SummarySerializer(data, many=True)
return Response({'users_summary': serializer.data})
Здесь я не получаю внешние значения. Я пытался реализовать сериализатор таким образом, чтобы получить агрегированные данные users_summary, но не смог этого добиться.
Вывод, который я получаю, следующий
{
"users_summary": [
{
"id": "string",
"date": "string",
"total_discount_amount": 0,
"total_paid": 0,
"total_billed": 0,
"visits": "string"
}
]
}
Есть ли решение?