Django Rest Framework данные json разделенные запятыми django-taggit
Я использую django-taggit и django-taggit_serializer для маркировки моих товаров ecommerce. Когда я делаю запрос на обновление через API, тело json выглядит следующим образом
{"tags":"dog,small,golden_retriever"}
я получаю ошибку
{
"message": "failed",
"details": {
"tags": [
"Invalid json list. A tag list submitted in string form must be valid json."
]
}
}
Хотя в django admin это разделено запятыми, я хотел бы сделать это разделенным запятыми и в django rest. Сериализаторы
class TagProductSerializer(TaggitSerializer, serializers.ModelSerializer):
tags = TagListSerializerField()
class Meta:
model = Product
fields = ('tags',)
def update(self, validated_data):
tags = validated_data.pop('tags')
instance = super(TagProductSerializer, self).create(validated_data)
instance.tags.set(*tags)
return instance
Виды
class TagProductsApiView(generics.UpdateAPIView):
queryset = Product.objects.all()
serializer_class = TagProductSerializer
lookup_field = 'pk'
def update(self, request, *args, **kwargs):
instance = self.get_object()
serializer = self.get_serializer(instance, data=request.data, partial=True)
if serializer.is_valid():
serializer.save()
return Response({"message": "Tags have been updated successfully"})
else:
return Response({"message": "failed", "details": serializer.errors})