在序列化程序中使用深度时如何选择特定列

Jav*_*ake 3 django django-rest-framework

我有一个由两个人组成的模型ForeignKeys.我只对解析内容感兴趣ForeignKeys,所以我使用的是depth变量,它基本上给了我用FK引用的表的所有列.有没有办法选择应该包含哪些列?

class SomeSerializer(serializers.ModelSerializer):
    class Meta:
        model = MyAwesomeModel
        fields = ('id', 'fk_one','fk_two')
        depth = 1
Run Code Online (Sandbox Code Playgroud)

Ale*_*lex 8

尝试使用嵌套序列化程序.文档在这里.

例:

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')
Run Code Online (Sandbox Code Playgroud)

编辑:

这里是Django Rest Framework的创建者的类似答案.还包括一些相关注释,包括嵌套序列化程序是只读的,您可能需要source在序列化程序字段中包含参数.