如何将Django queryset.values()序列化为json? [英] How to serialize Django queryset.values() into json?

查看:180
本文介绍了如何将Django queryset.values()序列化为json?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个包含许多字段的模型,但是对于这个问题,我只需要其中三个字段.当我尝试序列化.values集时,出现异常:

I have a model that has many fields, however for this problem I only need 3 of those fields. When I try to serialize a .values set I get an exception:

'dict'对象没有属性'_meta'

'dict' object has no attribute '_meta'

这是我的代码:

queryset = myModel.objects.filter(foo_icontains=bar).values('f1', 'f2', 'f3')
serialized_q = serializers.serialize('json', queryset, ensure_ascii=False)

推荐答案

Django序列化程序只能序列化查询集,

Django serializers can only serialize queryset, values() does not return queryset rather ValuesQuerySet object. So, avoid using values(). Rather, specifiy the fields you wish to use in values(), in the serialize method as follows:

看看这个 SO问题例如

objectQuerySet = ConventionCard.objects.filter(ownerUser = user)
data = serializers.serialize('json', list(objectQuerySet), fields=('fileName','id'))

而不是使用objectQuerySet.values('fileName','id'),而是使用serializers.serialize()fields参数指定这些字段.

Instead of using objectQuerySet.values('fileName','id'), specify those fields using the fields parameter of serializers.serialize() as shown above.

这篇关于如何将Django queryset.values()序列化为json?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆