django rest框架在视图中返回选定的字段

时间:2013-04-10 03:21:11

标签: django rest django-rest-framework

假设我有一个型号名称Book。我有两个视图(列表和详细信息)

models.py

class Book(models.Model):
    name = models.CharField(max_length=100)
    author = models.CharField(max_length=100)
    publishdate = models.DateTimeField()

serializers.py

class BookSerializer(serializers.ModelSerializer):

    class Meta:
        model = Book

如果我要在列表视图和详细信息视图中使用此序列化程序。我可以设置返回字段吗?示例:列表视图仅返回名称列表,详细视图将返回name,author,publishdate字段。 或者我是否必须在类中创建新的序列化程序并在类Meta中插入字段?

1 个答案:

答案 0 :(得分:6)

如果您需要对列表和详细信息视图使用不同的表示形式,则应为每个视图定义单独的序列化程序。例如......

class DetailBookSerializer(serializers.ModelSerializer):
    class Meta:
        model = Book
        fields = ('name', 'author', 'publishdate')

class ListBookSerializer(serializers.ModelSerializer):
    class Meta:
        model = Book
        fields = ('name',)

然后确保在每个视图上都适当设置serializer_class属性。