#python #django #postgresql #django-rest-framework
Вопрос:
У меня есть набор представлений на основе классов, который использует миксин CreateModelMixin. когда я делаю запросы спереди в свой набор представлений, он делает все правильно, в данном случае он создает новый элемент.
теперь я хочу использовать тот же набор представлений, но из другого набора представлений …
На самом деле я хочу сделать копию всех услуг, которые содержит Заказ, я пробовал несколькими способами, но у меня не получилось, и теперь я подумываю о том, чтобы сделать запросы к самому набору представлений, который создает услуги.
Я уже пытался удалить идентификаторы служб и выполнить .сохранить (), но это не работает .. также используйте сериализатор, но ничего … Если вы видите, в первой части кода я мог бы правильно клонировать Заказ, но при попытке сделать это с помощью сервисов он не работает …
# **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)