Tengo una función de vista:Transacción bloque logrado terminó con la espera de COMMIT/ROLLBACK
@transaction.commit_manually
def xyz(request):
if ABC:
success = something()
if success:
status = "success"
transaction.commit()
else:
status = "dataerrors"
transaction.rollback()
else:
status = "uploadproblem"
transaction.rollback()
return render(request, "template.html", {
'status': status,
})
creo que cada ruta de código termina la transacción de una manera u otra. Pero Django parece quejarse de que no. ¿Algunas ideas?
Django Version: 1.3
Exception Type: TransactionManagementError
Exception Value: Transaction managed block ended with pending COMMIT/ROLLBACK
EDITAR: No se han lanzado otras excepciones para modificar la ruta del código.
¿El ABC está definido en otra parte? –
¿estás usando postgres? Estos pueden ser relevantes: [aquí] (http://groups.google.com/group/django-users/browse_thread/thread/9b85e45d8fc015d2) y [aquí] (https://groups.google.com/group/django- cms/browse_thread/thread/3f8b1c10faa773f3/dddbc3b93b658e80? # dddbc3b93b658e80) – DTing
Sí, ABC se define lo siento. ¡Sobre la limpieza entusiasta de la fuente! – Joe