В Django Rest Framework у меня есть Сериализатор. Я получаю некоторые данные, из которых categories
представляет собой массив строк:
{
"name": "John",
"age": 25,
"categories": ["ADC", "HJD", "RTP"]
}
Я хочу сериализовать массив в строку через запятую ("ADC,HJD,RTP"
), чтобы я мог поместить ее вa CharField
.
Итак, я создал метод validate_categories()
в своем сериализаторе следующим образом:
class DeviceSerializer(HALSerializer):
# here some other stuff
categories = serializers.SerializerMethodField()
class Meta:
model = Device
fields = (
'_links',
'id',
'name',
'age',
'categories',
)
def get_categories(self, obj):
if obj.categories is None:
return []
return [
obj.categories.choices[key.upper()]
for key in obj.categories
]
def validate_categories(self, categories):
print("IN THE VALIDATOR") # WE NEVER REACH THIS POINT
print(categories)
return categories
def create(self, validated_data):
# here some custom creation code
device = Device.objects.create(**validated_data)
return device
Когда я публикую JSON-объект, объект создается, но никогда не вызывается валидатор.
Кто-нибудь знает, что я здесь не так делаю?