Подтвердить что ты не робот

Исключить поле из сериализатора рамки django rest

В следующем сериализаторе у меня есть вложенное сериализатор [ ContainerSerializer], и я хочу исключить поле из (контейнер) ContainerSerializer, но я не хочу никаких изменений в ContainerSerializer. Как я могу это сделать?

class BLcontainerMergedSerializer(serializers.ModelSerializer):
    container = ContainerSerializer()
    class Meta:
        model = BLcontainer
4b9b3361

Ответ 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