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

问题描述

我有一个有很多字段的模型,但是对于这个问题,我只需要3个字段。当我尝试序列化一个 .values set我得到一个例外

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

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


推荐答案

Django序列化程序只能序列化查询,不返回查询集,而不是 ValuesQuerySet 对象。所以,避免使用 values()。相反,请在序列化方法中指定要在 values()中使用的字段,如下所示:

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:

查看在这个,例如



Look at this SO question for example

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

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

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

这篇关于django将序列化的queryset.values()转换成json的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

08-21 17:52