【问题标题】:django debug toolbar showing SQL as None将 SQL 显示为 None 的 django 调试工具栏
【发布时间】:2019-01-04 18:48:28
【问题描述】:

我们在两个重新安装的应用程序上使用 django-debug-toolbar,一个服务于我们的旧版 django 应用程序,另一个服务于我们更新的 API。最近,API 上的调试工具栏一直将 SQL 查询显示为无(见屏幕截图)

另一个应用程序按预期工作。

调试工具栏附带的 debugsqlshell 也将查询报告为无:

In [8]: user = User.objects.last()
None [0.85ms]

In [9]: 

而不是按预期显示查询,如这里所示(在旧版应用端工作):

In [3]: user = User.objects.last()
SELECT @@SQL_AUTO_IS_NULL [1.96ms]
SELECT `auth_user`.`id`,
       `auth_user`.`password`,
       `auth_user`.`last_login`,
       `auth_user`.`is_superuser`,
       `auth_user`.`username`,
       `auth_user`.`first_name`,
       `auth_user`.`last_name`,
       `auth_user`.`is_staff`,
       `auth_user`.`is_active`,
       `auth_user`.`date_joined`,
       `auth_user`.`email`
FROM `auth_user`
ORDER BY `auth_user`.`id` DESC
LIMIT 1 [10.00ms]

In [4]: 

我已经检查了一些明显的东西。

  • 最近在受影响的应用程序上没有更改设置,并且在 特别是,中间件没有以任何方式重新排序,这 似乎是问题的潜在原因。
  • 调试工具栏最近没有更新,正在更新 debug-toolbar 到当前版本不影响情况。
  • 我可以看到使用 CaptureQueriesContext 的查询(来自 django.test.utils) 在测试上下文中运行时,但不在 调试sqlshell。

我目前正试图找出这件事发生的历史点。对于潜在原因的任何建议,我将不胜感激,以帮助本地化和解决此问题。

【问题讨论】:

    标签: django django-debug-toolbar


    【解决方案1】:

    我在使用 django 调试工具栏时遇到了同样的问题。 我将 mysqlclient 从 1.3.14 版本降级到 1.3.13,它现在可以工作了。

    【讨论】:

    • 已验证:降级到 1.3.13 也对我有用。将在 django 调试工具栏上提交错误票。
    • 在 Windows 上无法安装 1.3.13(编译错误)。使用 1.3.12 对我有帮助。
    【解决方案2】:

    来自 GitHub 的人建议将 Django 更新到 v2.1.5。 大多数情况下,升级是比降级更好的解决方案。它对我有用。

    https://github.com/jazzband/django-debug-toolbar/issues/1124#issuecomment-452407342

    【讨论】:

      猜你喜欢
      • 2011-10-13
      • 2022-01-11
      • 2021-07-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-06-26
      • 2017-10-20
      相关资源
      最近更新 更多