Клонирование элементов с помощью django CreteModelMixin

У меня есть основанный на классе viewswet, который использует миксин CreateModelMixin. Когда я делаю запросы из фронта к моему viewSet, он делает все правильно, в этом случае он создает новый элемент.

Теперь я хочу использовать тот же набор представлений, но из другого набора представлений...

На самом деле я хочу сделать копию всех сервисов, которые содержит Order, я пытался несколькими способами но у меня не получилось, и теперь я думаю сделать запросы к самому viewSet, который создает сервисы.

Я уже пробовал удалять ID служб и делать .save () но это не работает ... также использую сериализатор но ничего .... Если вы видите, в первой части кода, если я могу правильно клонировать заказ, но при попытке с услугами это не работает ...

        # **This works correctly**

        class ServicioViewSet(
                mixins.CreateModelMixin,
                mixins.UpdateModelMixin,
                mixins.RetrieveModelMixin,
                mixins.ListModelMixin,
                mixins.DestroyModelMixin,
                viewsets.GenericViewSet):

            queryset =  Servicio_r.objects.all()
            serializer_class = ServicioRserializer

          // front endpoint...

          await self._create(`create_service/`, self.grupoDatos, (response) => {})...




           # Here I want to clone the services ... or make requests to the previous 
           # viewset to be able to clone them (create them)

                class DuplicarOrdenViewSet(generics.ListAPIView):
                    queryset = Orden_trabajo.objects.all()
                    serializer_class = OrdenTrabajoserializer


                    def post(self, request, *args, **kwargs):
                        orden = request.data['orden']
                        itemsToSave = []
                        ordenTrabajo = Orden_trabajo.objects.get(pk = orden)
                        ordenTrabajo.pk = None
                        ordenTrabajo.save()
                        nuevaID_ot = ordenTrabajo.id
                        print('NuevaID', nuevaID_ot)

                        serviciosOrden = Servicio_realizados_orden_trabajo.objects.defer('id').filter(orden_trabajo_id = orden)
                        servicios = list(serviciosOrden.values())
                        print(servicios)
                        print('========================================')
                        for item in servicios:
                            servicio = Servicio_realizados_orden_trabajo.objects.get(pk = item['id'])
                            servicio.pk = None
                            servicio.orden_trabajo_id = nuevaID_ot

                            request.data = servicio
                
                            data = ServicioRealizadosViewSet.create(request, *args, **kwargs)
                            print(data)

                        r = 'OK'
                        return Response(r)
Вернуться на верх