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

Posted

技术标签:

【中文标题】django rest框架返回视图中的选定字段【英文标题】:django rest framework return selected field in view 【发布时间】:2013-04-01 17:36:28 【问题描述】:

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

models.py

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

序列化器.py

class BookSerializer(serializers.ModelSerializer):

    class Meta:
        model = Book

如果我要在列表视图和详细信息视图中使用此序列化程序。我可以设置返回字段吗?示例:列表视图仅返回名称列表,详细视图将返回名称、作者、发布日期字段。 还是我必须在两个类的 Class Meta 中创建新的序列化程序并插入字段?

【问题讨论】:

【参考方案1】:

如果您需要列表和详细视图的不同表示形式,您应该为每个视图定义单独的序列化程序。比如……

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

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

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

【讨论】:

感谢汤姆的回答,我认为还有另一种方法:D

以上是关于django rest框架返回视图中的选定字段的主要内容,如果未能解决你的问题,请参考以下文章

从Django REST中的函数返回JsonResponse

尝试覆盖django rest框架中的update方法,以在更新后返回整个查询集

在Django rest框架中获取图像文件和字段

Django REST框架的嵌套API视图?

Django rest 框架序列化程序返回一个列表而不是 json

从 Django django-rest-framework 视图有条件地返回 JSON 或 HTML 响应