Código HTML:
Ver original
TransactionManagementError at /mesa/search-tramite/ Transaction managed block ended with pending COMMIT/ROLLBACK Request Method: GET Request URL: http://127.0.0.1:8000/mesa/search-tramite/?folio_tramite=47400 Django Version: 1.7.8 Exception Type: TransactionManagementError Exception Value: Transaction managed block ended with pending COMMIT/ROLLBACK Exception Location: /home/dgtic/licenciastab/local/lib/python2.7/site-packages/django/db/backends/__init__.py in leave_transaction_management, line 336 Python Executable: /home/dgtic/licenciastab/bin/python Python Version: 2.7.6 Python Path: ['/home/dgtic/Documentos/licenciastabasco/licencias', '/home/dgtic/Documentos/licenciastabasco/licencias', '/home/dgtic/licenciastab/lib/python2.7', '/home/dgtic/licenciastab/lib/python2.7/plat-i386-linux-gnu', '/home/dgtic/licenciastab/lib/python2.7/lib-tk', '/home/dgtic/licenciastab/lib/python2.7/lib-old', '/home/dgtic/licenciastab/lib/python2.7/lib-dynload', '/usr/lib/python2.7', '/usr/lib/python2.7/plat-i386-linux-gnu', '/usr/lib/python2.7/lib-tk', '/home/dgtic/licenciastab/local/lib/python2.7/site-packages', '/home/dgtic/Documentos/licenciastabasco/licencias', '/home/dgtic/Documentos/licenciastabasco/licencias/licencias'] Server time: Lun, 6 Jul 2015 21:15:41 -0500
Mi vista es esta:
Código Python:
Ver original
class SeachTramiteList(APIView,MultasMixin): @never_cache @transaction.commit_manually def get(self,request,*args,**kwargs): folio_tramite = request.GET.get('folio_tramite','').strip() data = {"success":True,"datos":[],"documento":[]} try: tramiteVW = TramiteVW.objects.get(folio_tramite=folio_tramite) #Multas try: data['MULTAS'] = self.list_multas({'nombre':tramiteVW.nombre,'ap_paterno':tramiteVW.ap_paterno,'ap_materno':tramiteVW.ap_materno,'folio':tramiteVW.folio_lic_anterior,'curp':tramiteVW.curp,'rfc':tramiteVW.rfc}) except IOError as iex: print(iex) data['success']=False data['message'] = 'Ocurrio un error al conectarse a infracciones' transaction.rollback() return Response(data, status=status.HTTP_200_OK) except Exception as ex: data['success']=False data['message'] = ex.message transaction.rollback() return Response(data, status=status.HTTP_200_OK) try: respuesta_pago=self.__validar_pago(folio_tramite) if respuesta_pago['transaccion'][0]==1: data['pagado']=True data['text_pagado']='Pagado' else: data['pagado']=False data['text_pagado']='Sin Pagar' data['importe_total']=respuesta_pago.get('importe_total',0) data['repuesta_pago_id']=respuesta_pago.get('repuesta_pago_id',None) data['tx']=respuesta_pago.get('tx','') except Exception as exc: data['pagado']=False data['repuesta_pago_id']=None data['text_pagado']='Error en verificación' serialise = TramiteVwSerializer(tramiteVW) try: data["datos"] = serialise.data except: data["success"]=False data["message"]='Ocurrio un error al realizar la búsqueda vuelva a intetarlo' documentos = tramiteVW.get_documentos() serialDocumentos = DocumentoAdjuntoSerializer(documentos,many=True) data["documento"]=serialDocumentos.data except TramiteVW.DoesNotExist: data["success"]=False data["message"]="No se encontro el folio del trámite" transaction.rollback() else: transaction.commit() return Response(data, status=status.HTTP_201_CREATED) #TODO: MODIFICAL AL TENER LAS OPCIONES DE PAGO def __validar_pago(self,folio_tramite): data = {"success":True} try: tramite = Tramite.objects.get(folio_tramite=folio_tramite) recibo_pago=RespuestaPago.objects.get(tramite__id=tramite.id, activo=1) url = settings.WEBSERVICE_FINANZAS client = Client(url) fecha=recibo_pago.fecha_generacion_transaccion tx=str(fecha.year)+'/'+recibo_pago.numero_transaccion data['transaccion']= client.service.consultaTransaccion(tx) data['tx']=tx data['importe_total']=recibo_pago.importe_total_opca data['repuesta_pago_id']=recibo_pago.id return data except Exception as ex: return ex