您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

如何调试:内部错误当前事务中止,命令被忽略,直到事务块结束

如何调试:内部错误当前事务中止,命令被忽略,直到事务块结束

在大多数情况下,这意味着 sql语句无法执行。在这种情况下,您应该:

,请参见以下代码段以粘贴到settings.py中

,否则将不会记录sql

,您应该在控制台中看到所有SQL查询

,然后应该查找哪些查询失败,然后应该能够调试它们-或打开特定于导致该问题的查询的新问题。您可以使用PHPMyAdmin或直接使用CLI客户端或任何数据库客户端来逐一执行SQL查询,直到找到需要您的爱的查询为止。

sql记录配置:

LOGGING = { 
   'version': 1,
   'disable_existing_loggers': True,
   'formatters': {
       'simple': {
           'format': '%(levelname)s %(message)s',
       },  
   },  
   'handlers': {
       'console':{
           'level':'DEBUG',
           'class':'logging.StreamHandler',
           'formatter': 'simple'
       },  
   },  
   'loggers': {
       'django': {
           'handlers': ['console'],
           'level': 'DEBUG',
       },  
   }   
}

如果此配置未通过提供任何其他控制台输出runserver,请随时尝试django-autocomplete- light的示例test_project

阅读并粘贴安装命令到 /tmp

将目录更改为 autocomplete_light_env/src/django-autocomplete-light/test_project

打开test_project/settings.py,用LOGGING上面的一个替换配置

运行服务器并打开浏览器

您的控制台将如下所示:

Validating models...

0 errors found
Django version 1.4.1, using settings 'test_project.settings'
Development server is running at http://127.0.0.1:8000/
Quit the server with CONTROL-C.
DEBUG (0.001) SELECT "django_content_type"."id", "django_content_type"."name", "django_content_type"."app_label", "django_content_type"."model" FROM "django_content_type" WHERE ("django_content_type"."model" = taggable  AND "django_content_type"."app_label" = charfield_autocomplete ); args=('taggable', 'charfield_autocomplete')
DEBUG (0.000) 
        SELECT DISTINCT "tagging_tag".id, "tagging_tag".name
        FROM
            "tagging_tag"
            INNER JOIN "tagging_taggeditem"
                ON "tagging_tag".id = "tagging_taggeditem".tag_id
            INNER JOIN "charfield_autocomplete_taggable"
                ON "tagging_taggeditem".object_id = "charfield_autocomplete_taggable"."id"

        WHERE "tagging_taggeditem".content_type_id = 11

        GROUP BY "tagging_tag".id, "tagging_tag".name

        ORDER BY "tagging_tag".name ASC; args=[]
其他 2022/1/1 18:46:21 有304人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶