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

Agu*_*gus 5 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()
Run Code Online (Sandbox Code Playgroud)

serializers.py

class BookSerializer(serializers.ModelSerializer):

    class Meta:
        model = Book
Run Code Online (Sandbox Code Playgroud)

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

Tom*_*tie 6

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

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

class ListBookSerializer(serializers.ModelSerializer):
    class Meta:
        model = Book
        fields = ('name',)
Run Code Online (Sandbox Code Playgroud)

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