Python 在JSON序列化中,将Django queryset转换为dictionnary
我正在创建一个API,我需要以字典格式返回数据,以便它可以通过API机制序列化 目前有效的代码非常简单:Python 在JSON序列化中,将Django queryset转换为dictionnary,python,json,django,api,serialization,Python,Json,Django,Api,Serialization,我正在创建一个API,我需要以字典格式返回数据,以便它可以通过API机制序列化 目前有效的代码非常简单: def mymethod(self): queryset1 = MyClass.objects.get(...) # Ccontains 1 object, easy to deal with queryset2 = OtherClass.objects.filter(...) # Contains N objects, hard to deal with ! r
def mymethod(self):
queryset1 = MyClass.objects.get(...) # Ccontains 1 object, easy to deal with
queryset2 = OtherClass.objects.filter(...) # Contains N objects, hard to deal with !
return {
'qs1_result': queryset1.some_attribute # This works well
}
从queryset1返回数据很容易,因为有1个对象。我只是选择了我需要的属性,它就工作了。现在让我们假设,另外,我想从queryset2返回数据,其中有许多对象,并且我不需要对象的每个属性
你会怎么做
我重复一遍,我不需要自己进行序列化。我只需要返回结构化数据,这样就可以进行序列化
非常感谢。来自Django文档:
字段子集
如果只希望序列化字段的子集,可以为序列化程序指定字段参数:
from django.core import serializers
data = serializers.serialize('json', SomeModel.objects.all(), fields=('name','size'))
在本例中,只有每个模型的name和size属性将被序列化。我不能自己序列化数据。我只需要在结构化的词汇表中返回数据。也许这有帮助?是的,谢谢,我也看到了。这是第一步,因为它给了我一个N个dict的列表,查询集中每个对象1个dict。