Причина, по которой вы получаете эту ошибку, заключается в том, что глубина является атрибутом для чтения сериализаторов. Например,
вложенное представление с использованием вашего сериализатора с глубиной 1 будет выглядеть так:
{ 'order_id': 1
'created_by': { {'id': 1, 'name': 'hello', 'email': 'foo@bar.com'} }
} # created_by object is fully serialized and not just the id
Теперь это имеет смысл для чтения, но при отправке в конечную точку с использованием сериализатора с глубиной 1клиент должен будет опубликовать полный пользовательский объект (он не будет делать это по своей сути. Вам нужно будет реализовать собственную логику для этого и стать очень логикой, например, если пользовательский объект)
Выесть несколько вариантов
Я рекомендую использовать 2 различных сериализатора для чтения и создания.
Вы можете поддерживать тот же сериализатор и не указывать значение глубины attr, что позволит вам публиковать и читать его, но потребуется выполнить дополнительный http-запрос от клиента для всего объекта пользователя.
Вы можете проявить творческий подход и реализовать некоторую логику, которая изменяет глубину в зависимости от метода http.