来自列表的Rest_framework数据

时间:2015-05-04 07:44:59

标签: python django django-rest-framework

如果您想要公开的数据来自数据库,那么django rest_framework非常有效,但如果数据来自简单的列表(字典),情况会怎样? rest_framework中是否有任何支持来表示这样的数据?:

[
    {'id': 1, 'name': 'apple'},
    {'id': 2, 'name', 'banana'},
    {'id': 3, 'name': 'orange'},
]

如果确定数据永远不会改变(因此我们只需要少于10个元素就不需要将它们放入数据库中),那么实现目标的最佳方法是什么?

我想将django 1.6+中的列表转换为假的QuerySet是不可能的......

Rest_framework版本:3.1.1 Django版本:1.7.x

1 个答案:

答案 0 :(得分:2)

对于任意对象,您只需按照文档进行操作:

from rest_framework import serializers

class Fruit(object):
    def __init__(self, id, name):
        self.id = id
        self.name = name

class FruitSerializer(serializers.Serializer):
    id = serializers.IntegerField()
    name = serializers.CharField(max_length=200)

然后:

fruits = [Fruit(id=1, name="apple"),
          Fruit(id=2, name="banana"),
          Fruit(id=3, name="orange"),]

serializer = FruitSerializer(fruits, many=True)
serializer.data
# [
#     {'id': 1, 'name': 'apple'},
#     {'id': 2, 'name': 'banana'},
#     {'id': 3, 'name': 'orange'}
# ]