在序列化程序中使用深度时如何选择特定列
Posted
技术标签:
【中文标题】在序列化程序中使用深度时如何选择特定列【英文标题】:How to choose specific columns when using depth in serializer 【发布时间】:2014-06-05 17:44:58 【问题描述】:我有一个由两个ForeignKeys
组成的模型。我只对解析ForeignKeys
的内容感兴趣,所以我使用depth
变量,它基本上为我提供了用FK 引用的表的所有列。有没有办法选择应该包含哪些列?
class SomeSerializer(serializers.ModelSerializer):
class Meta:
model = MyAwesomeModel
fields = ('id', 'fk_one','fk_two')
depth = 1
【问题讨论】:
【参考方案1】:尝试使用嵌套的序列化程序。文档here。
例子:
class FKOneSerializer(serializers.ModelSerializer):
class Meta:
model = FKOne
fields = ('name', 'id')
class SomeSerializer(serializers.ModelSerializer):
fk_one = FKOneSerializer()
class Meta:
model = MyAwesomeModel
fields = ('id', 'fk_one','fk_two')
编辑:
Django Rest Framework 的创建者的类似回答 here。还包括一些相关说明,包括嵌套序列化程序是只读的,您可能需要在序列化程序字段中包含 source
参数。
【讨论】:
以上是关于在序列化程序中使用深度时如何选择特定列的主要内容,如果未能解决你的问题,请参考以下文章