考虑以下序列化程序
class MyModelSerializer(serializers.ModelSerializer):
class Meta:
model = MyModel
fields = ('id', 'account')
depth = 1
字段account
引用ForeignKey
中的MyModel
,我希望使用此序列化程序公开某些Account
字段,但不是所有字段。
如何指定只应序列化account.name
和account.email
?
答案 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中找到有关嵌套序列化程序的更多信息。