Исключить поле из сериализатора рамки django rest
В следующем сериализаторе у меня есть вложенное сериализатор [ ContainerSerializer
], и я хочу исключить поле из (контейнер) ContainerSerializer
, но я не хочу никаких изменений в ContainerSerializer
. Как я могу это сделать?
class BLcontainerMergedSerializer(serializers.ModelSerializer):
container = ContainerSerializer()
class Meta:
model = BLcontainer
Ответы
Ответ 1
Создайте другой сериализатор, скажем, BLContainerSerializer
и исключите там поля. Затем используйте это в своем BLcontainerMergedSerializer
. Надеюсь, это поможет.
class BLContainerSerializer(serializers.ModelSerializer):
class Meta:
model = Container
exclude = ('field1', )
class BLcontainerMergedSerializer(serializers.ModelSerializer):
container = BLContainerSerializer()
class Meta:
model = BLcontainer
Ответ 2
Существует метасвойство полей:
class BLcontainerMergedSerializer(serializers.ModelSerializer):
container = ContainerSerializer()
class Meta:
model = BLcontainer
fields = ('field1', 'field2')
Ссылка: Django REST docs