【问题标题】:Django REST Framework Customized Json Data FormatDjango REST Framework 自定义 Json 数据格式
【发布时间】:2014-09-10 20:54:04
【问题描述】:

我几天前开始使用 Django REST Framework,这是一个很棒的框架,但我找不到有关此的信息: 我序列化了我的模型“Deposito”并成功获取了 json 格式的数据,但我想添加一些字段,例如总计(总记录)。

感谢您的帮助。

使用 serializers.ModelSerializer 获得的数据

[{
    "id": 78,
    "Numero": "2014051100001",
    "Monto": "100.00",
    "Ingreso": "2014-08-13T22:30:00Z",
    "Entregado": true
},
{
    "id": 533,
    "Numero": "2014051100221",
    "Monto": "200.00",
    "Ingreso": "2014-08-22T14:45:00Z",
    "Entregado": true
}]

我想获取的数据

{
    "rows": 
    [{
        "id": 78,
        "Numero": "2014051100001",
        "Monto": "100.00",
        "Ingreso": "2014-08-13T22:30:00Z",
        "Entregado": true
    },
    {
        "id": 533,
        "Numero": "2014051100221",
        "Monto": "200.00",
        "Ingreso": "2014-08-22T14:45:00Z",
        "Entregado": true
    }]
    "total": 2
}

这是我的代码

# serializer.py
class DepositosSerializer(serializers.ModelSerializer):
    class Meta:
        model = Deposito
        fields = ('id', 'Numero', 'Monto', 'Ingreso', 'Entregado')


#views.py
def DepositoByClient(request, cliente):
    """
    List Deposito by Cliente.
    """
    try:
        deposito = Deposito.objects.filter(Cliente=cliente, Entregado = True).order_by('Numero')
    except Deposito.DoesNotExist:
        return HttpResponse(status=400)

    if request.method == 'GET':
        serializer = DepositosSerializer(deposito)
        return JSONResponse(serializer.data)

【问题讨论】:

    标签: json django serialization django-rest-framework


    【解决方案1】:

    在返回响应之前将总值添加到数据中是什么意思?

    #views.py
    def DepositoByClient(request, cliente):
        """
        List Deposito by Cliente.
        """
        try:
            deposito = Deposito.objects.filter(Cliente=cliente, Entregado = True).order_by('Numero')
        except Deposito.DoesNotExist:
            return HttpResponse(status=400)
    
        if request.method == 'GET':
            serializer = DepositosSerializer(deposito)
            rows = serializer.data
            total =  # Whatever you want here ...
            return JSONResponse(dict(rows=rows, total=total))
    

    【讨论】:

      猜你喜欢
      • 2017-10-16
      • 2019-02-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-08-03
      • 2015-09-15
      • 2018-10-26
      • 1970-01-01
      相关资源
      最近更新 更多