Django:将非模型字段添加到 serializers.serialize
Django: Adding a non-model field into serializers.serialize
我有以下代码:
pending_invoices=invoice.objects.filter(user=request.user,customer=pk).annotate(sum_invoices=Sum('invoicereceipt__amount'))
pending_invoice=pending_invoices.filter(~Q(sum_invoices=0))
invoices=serializers.serialize('json', pending_invoice,fields=("number","sum_invoices"))
return HttpResponse(invoices,content_type='application/json')
我正在尝试通过 ajax 获取 JSON 数据。
我可以在我的输出中成功获得 number
字段。但是我已经注释了 sum_invoices
并且在 json 输出中没有得到这个值。
我的问题是我的上述代码是否正确,如果不正确,我该如何将带注释的字段和结果添加到我的 json 输出中?
编辑:
invoices=serializers.serialize('json', pending_invoice,fields=("number","sum_invoices"))
在上面的行中,"number"
是我模型中的一个字段,sum_invoices
我使用注释添加了该字段。
刚刚得到解决方案。我正在使用 serializers.serialize
并将模型转换为 json 数据并且不考虑除模型中存在的任何字段。
所以最好的使用方法是json.dumps
这是工作代码。
invoices = json.dumps(list(pending_invoice), cls=DjangoJSONEncoder)
我有以下代码:
pending_invoices=invoice.objects.filter(user=request.user,customer=pk).annotate(sum_invoices=Sum('invoicereceipt__amount'))
pending_invoice=pending_invoices.filter(~Q(sum_invoices=0))
invoices=serializers.serialize('json', pending_invoice,fields=("number","sum_invoices"))
return HttpResponse(invoices,content_type='application/json')
我正在尝试通过 ajax 获取 JSON 数据。
我可以在我的输出中成功获得 number
字段。但是我已经注释了 sum_invoices
并且在 json 输出中没有得到这个值。
我的问题是我的上述代码是否正确,如果不正确,我该如何将带注释的字段和结果添加到我的 json 输出中?
编辑:
invoices=serializers.serialize('json', pending_invoice,fields=("number","sum_invoices"))
在上面的行中,"number"
是我模型中的一个字段,sum_invoices
我使用注释添加了该字段。
刚刚得到解决方案。我正在使用 serializers.serialize
并将模型转换为 json 数据并且不考虑除模型中存在的任何字段。
所以最好的使用方法是json.dumps
这是工作代码。
invoices = json.dumps(list(pending_invoice), cls=DjangoJSONEncoder)