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方法,以在更新后返回整个查询集