我正在创建一个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返回数据,其中有很多对象,而且我不需要对象的每个属性。
你会怎么做?
我再说一遍,我不需要自己进行序列化。我只需返回结构化数据,即可进行序列化。
非常感谢。
答案 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'))
在此示例中,仅序列化每个模型的名称和大小属性。