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})

Вернуться на верх