django REST框架ModelSerializer中受限制的嵌套字段集

时间:2014-11-17 15:39:36

标签: django django-rest-framework

考虑以下序列化程序

class MyModelSerializer(serializers.ModelSerializer):
    class Meta:
        model = MyModel
        fields = ('id', 'account')
        depth = 1

字段account引用ForeignKey中的MyModel,我希望使用此序列化程序公开某些Account字段,但不是所有字段。

如何指定只应序列化account.nameaccount.email

1 个答案:

答案 0 :(得分:1)

您可以通过创建自己的序列化程序来用作嵌套序列化程序来完成此操作。

class AccountSerializer(serializers.ModelSerializer):

    class Meta:
        model = Account
        fields = ('name', 'email', )

您最好创建专门的序列化程序,而不是依靠Django REST Framework为您创建它们。默认情况下,自动创建的序列化程序包含模型上定义的所有字段。

class MyModelSerializer(serializers.ModelSerializer):
    account = AccountSerializer()

    class Meta:
        model = MyModel
        fields = ('id', 'account', )

您可以在Django REST Framework documentation中找到有关嵌套序列化程序的更多信息。