QuerySet()到Json序列化

时间:2015-08-23 23:23:10

标签: python json django rest django-views

我有这些模特:Ml,Mli和Mlvid。我抓住以下信息

mliv = Mlvid.objects.filter(mli__ml__pipe_id=175083)

我该如何消毒这样的东西?我可以像下面这样序列化它

 serdata = serializers.serialize("json", mliv)

但它只包含Mlvid字段。如何添加与查询相关的Ml和Mli字段?谢谢。如果您需要更多信息,请告诉我。

我在想我需要迭代mli并构建一个list / dict然后序列化列表或者之后使用dict。

2 个答案:

答案 0 :(得分:0)

问题是mliv包含对象。您可以查询所需的字段,而不是整个对象:

mliv = Mlvid.objects.filter(mli__ml__pipe_id=175083).values('field_1', 'field_2')

field_1field_2Mlvid个字段的位置。您将获得一系列dicts,serializables。

答案 1 :(得分:0)

为了序列化如下所示的查询集并获取所有相关字段:

mliv = Mlvid.objects.filter(mli__ml__pipe_id=175083)

首先我使用了值()     mliv = Mlvid.objects.filter(mli__ml__pipe_id = 175083).value(' mli__ml__street')

接下来我创建一个列表

mlist=[]

现在我遍历mliv并将内容添加到列表中

for m in mliv:
    mlist.append(m)

接下来,我将列表传递给JsonResponse()

resp = JsonResponse(mlist, safe=False)