如何将Django queryset.values()序列化为json? [英] How to serialize Django queryset.values() into 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 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屋!