问题描述
我有一个有很多字段的模型,但是对于这个问题,我只需要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的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!