Python Django-如何获取DatabaseError的调试信息;“当前事务被中止”;在Django错误页面中?
在开发Django项目时,我遇到了一个数据库错误,上面说: 当前事务被中止,在结束之前忽略命令 事务块 我知道发生这种情况是因为有一个错误的PostgreSQL事务没有回滚,并且可以在PostgreSQL错误日志中找到该错误事务中的错误。然而,我认为如果这个错误显示在Django错误页面上会更加方便。然后你可以直接看到问题出在哪里Python Django-如何获取DatabaseError的调试信息;“当前事务被中止”;在Django错误页面中?,python,django,debugging,django-models,django-postgresql,Python,Django,Debugging,Django Models,Django Postgresql,在开发Django项目时,我遇到了一个数据库错误,上面说: 当前事务被中止,在结束之前忽略命令 事务块 我知道发生这种情况是因为有一个错误的PostgreSQL事务没有回滚,并且可以在PostgreSQL错误日志中找到该错误事务中的错误。然而,我认为如果这个错误显示在Django错误页面上会更加方便。然后你可以直接看到问题出在哪里 那么,有可能在Django错误页面上获取这些PostgreSQL错误吗?如果是,如何处理?如果您想深入了解异常的细节,那么您可以编写一个自定义的包视图处理,捕获未处理
那么,有可能在Django错误页面上获取这些PostgreSQL错误吗?如果是,如何处理?如果您想深入了解异常的细节,那么您可以编写一个自定义的包视图处理,捕获未处理的
django.db.DatabaseError
并在开发服务器控制台的调试会话中检查异常:
from django.db import DatabaseError
class DatabaseErrorMiddleware(object):
def process_view(self, request, view, args, kwargs):
try:
view(request, *args, **kwargs)
except DatabaseError as err:
import pdb; pdb.set_trace()
# You can now fully inspect the `e` exception object and it's context
这些异常是良性的,通常发生在线程的请求-响应流提前结束时,通常发生在开发过程中,如果您的客户端在应用程序返回响应之前中止连接,尽管这可能不是全部。您看过django调试工具栏了吗?-你做过什么调查吗?你试过什么吗?你查过Django文档了吗?显示你的努力。@BelowtheRadar是的。你知道这个问题已经有一年了,而且已经得到了回答吗?