У меня есть объект с необязательными полями. Я определил свой сериализатор следующим образом:
class ProductSerializer(serializers.Serializer):
code = serializers.Field(source="Code")
classification = serializers.CharField(source="Classification", required=False)
I мысль required=False
выполнит задачу обхода поля, если оно не существует. Однако в документации упоминается, что это влияет на десериализацию, а не на сериализацию.
Я получаю следующую ошибку:
'Product' object has no attribute 'Classification'
Что происходит, когда я пытаюсь получить доступ к .data
сериализованного экземпляра. (Разве это не означает десериализацию, которая поднимает это?)
Это случается для экземпляров, которые не имеют Classification
. Если я опускаю Classification
из класса сериализатора, он отлично работает.
Как правильно это сделать? Сериализуйте объект с необязательными полями.