在JSON序列化目的中将Django queryset转换为字典

时间:2014-10-26 16:54:33

标签: 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 !

    return {
        'qs1_result': queryset1.some_attribute # This works well
    }

从queryset1返回数据很简单,因为有1个对象。我只选择我需要的属性,它的工作原理。现在让我们说,另外,我想从queryset2返回数据,其中有很多对象,而且我不需要对象的每个属性。

你会怎么做?

我再说一遍,我不需要自己进行序列化。我只需返回结构化数据,即可进行序列化。

非常感谢。

1 个答案:

答案 0 :(得分:0)

来自Django文档:https://docs.djangoproject.com/en/dev/topics/serialization/#subset-of-fields

字段子集 如果您只想序列化一个字段子集,则可以为序列化程序指定字段参数:

from django.core import serializers
data = serializers.serialize('json', SomeModel.objects.all(), fields=('name','size'))

在此示例中,仅序列化每个模型的名称和大小属性。