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

标签 django rest django-rest-framework

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

模型.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

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

最佳答案

如果您需要不同的列表和详细 View 表示,您应该为每个 View 定义单独的序列化程序。例如...

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

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

然后确保设置serializer_class每个 View 上的适当属性。

关于django rest 框架在 View 中返回选定的字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15916349/

相关文章:

ember.js - 从 Ember 发布到 DRF API 时出现 406( Not Acceptable )

python - 构建标签云的巧妙方法? - Python

html - 从 Django 发送时,Gmail 无法正确呈现带有 html 中断的电子邮件

ruby-on-rails - 带有嵌套参数 cUrl 的多部分 POST

Django Rest Framework 避免身份验证 JWT

带有 ImageFIeld 和 HTTPS 的 Django ModelSerializer

python - 通过 Web 界面使用 Python/Django 执行系统管理任务

javascript - Django-ckeditor 内联错误

rest - @Path 和 @WebServlet 的区别

c++ - CPPRest SDK 向服务器发出 HTTP 请求