首页 > 解决方案 > 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"
        }
      ]
    }

有什么解决办法吗?

标签: djangodjango-rest-frameworkdjango-serializer

解决方案


推荐阅读