我有两个序列化程序,其中一个是嵌套的:
class PaperSerializer(serializers.ModelSerializer):
class Meta:
model = Paper
class AuthorSerializer(serializers.ModelSerializer):
papers = PaperSerializer(
many=True,
read_only=True,
source='paper_set'
)
class Meta:
model = Author
我想得到一个作者列表,只显示他们发表的论文(模型上存在布尔域)。在
我想像/api/v1/authors/?show_published_only=true
那样调用API。在
经过一番挖掘,我发现可以将上下文从视图集传递到序列化程序:
视图.py
现在,创建一个继承自
serializers.ListSerializer
的新序列化程序FilteredPaperSerializer
,然后重写to_representation()
方法来过滤查询集:序列化程序.py
^{pr2}$NB:别忘了将获取的URL参数转换为布尔值或与模型相关的数据类型,我在上面的文章中忽略了这一点。在
相关问题 更多 >
编程相关推荐