假设我有一个型号名称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中插入字段?
答案 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
属性。