Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Django-如何获取DatabaseError的调试信息;“当前事务被中止”;在Django错误页面中?_Python_Django_Debugging_Django Models_Django Postgresql - Fatal编程技术网

Python Django-如何获取DatabaseError的调试信息;“当前事务被中止”;在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事务没有回滚,并且可以在PostgreSQL错误日志中找到该错误事务中的错误。然而,我认为如果这个错误显示在Django错误页面上会更加方便。然后你可以直接看到问题出在哪里


那么,有可能在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是的。你知道这个问题已经有一年了,而且已经得到了回答吗?