问题
In the following serializer, I have a nested serializer [ContainerSerializer
] field and I want to exclude a field from (container)ContainerSerializer
but I don't want any change in ContainerSerializer
. How can I do that?
class BLcontainerMergedSerializer(serializers.ModelSerializer):
container = ContainerSerializer()
class Meta:
model = BLcontainer
回答1:
Create another serializer say BLContainerSerializer
and exclude fields there. Then use this in your BLcontainerMergedSerializer
. Hope this helps.
class BLContainerSerializer(serializers.ModelSerializer):
class Meta:
model = Container
exclude = ('field1', )
class BLcontainerMergedSerializer(serializers.ModelSerializer):
container = BLContainerSerializer()
class Meta:
model = BLcontainer
回答2:
There is a fields meta property:
class BLcontainerMergedSerializer(serializers.ModelSerializer):
container = ContainerSerializer()
class Meta:
model = BLcontainer
fields = ('field1', 'field2')
Reference: Django REST docs
来源:https://stackoverflow.com/questions/38366605/exclude-a-field-from-django-rest-framework-serializer