Django Rest Framework. добавляет новый элемент списка в request.data, но получает новый элемент в виде двойного списка

Я создаю небольшой Django Rest Framework API с APIView. Он генерирует пост с тегами, которые получаются из БД, но если тегов нет или я хочу добавить новый тег, список имен тегов передается в полезную нагрузку и создает их вдоль поста, затем новые ID тегов добавляются в request.data['tags'].

Это полезная нагрузка, которую я передаю для новых тегов:

{
    'title': 'Test Creating with new tags',
    'new_tags': ['newest', 'newer']
}

Это почтовый метод:

def post(self, request, format=None):
    """ Creates a Post instance """
    if isinstance(request.data, QueryDict):
        request.data._mutable = True

    tmp_new_tags = request.data.get('new_tags', None)
    if tmp_new_tags:
        new_tags = request.data.pop('new_tags')
        request.data.update({'tags': []})
        for new_tag in new_tags:
            tag = Tag.objects.create(name=new_tag, user=self.request.user)
            request.data['tags'].append(str(tag.id))

    serializer = PostSerializer(data=request.data)
    if serializer.is_valid():
        serializer.save(user=self.request.user)
        return Response(serializer.data, status=status.HTTP_201_CREATED)
    return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)

вот request.data с существующими тегами, которые я ожидаю для новых тегов:

<QueryDict: {'title': ['Test Creating'], 'tags': ['1', '2']}>

Но я получил теги с двойным []

<QueryDict: {'title': ['Test Creating with new tags'], 'tags': [['3', '4']]}>

Это ответ.данные:

{'tags': [ErrorDetail(string="“['3', '4']” is not a valid UUID.", code='invalid')]}

Как я могу добавить один список вместо двойного списка к request.data['tags']?

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