使用Django ORM序列化数据和相关成员

时间:2012-01-05 21:48:19

标签: django rest serialization django-orm django-rest-framework

我目前正在使用django开发REST api。我开始使用漂亮的djangorestframework,我喜欢使用“View”类。 但是,我面临着序列化问题。 我不喜欢使用Serializer类的Serialization。 主要目标是准备一个包含所有信息的巨型字典,并将其提供给渲染器类,该类将其转换为xml,json,yaml,具体取决于“Accept:”HTTP标头。目标是优雅的,但是60%的CPU时间用于创建“GIANT DICT”。

这个dict可以使用django Models创建,但我认为使用动态实例化的类和对象是非常无效的?我正在尝试使用一些QuerySet方法来过滤我想要的模型成员,并获得一个简单的dict::: values()方法,但不幸的是,我无法从我的模型中访问m2m和foreignkey。 / p>

你有没有试过这个?不过吗?

1 个答案:

答案 0 :(得分:1)

您可以使用QuerySet的iterator方法:

  

...对于一个只返回大量对象的QuerySet   需要访问一次,这可以带来更好的性能和a   显着减少记忆。

您的代码应如下所示:

for obj in SomeModel.objects.values_list('id', 'name').iterator():
    # do something