我有一个由两个ForeignKeys
组成的模型。我只对解析ForeignKeys
的内容感兴趣,所以我使用depth
变量,它基本上给了我用FK引用的表的所有列。有没有办法选择应该包含哪些列?
class SomeSerializer(serializers.ModelSerializer):
class Meta:
model = MyAwesomeModel
fields = ('id', 'fk_one','fk_two')
depth = 1
答案 0 :(得分:7)
尝试使用嵌套序列化程序。文档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
参数。