Django 调试工具栏 BaseConnectionHandler.all() 错误

Sir*_*adi 4 django django-debug-toolbar

我正在使用 docker,调试工具栏出现以下错误:

BaseConnectionHandler.all() got an unexpected keyword argument 'initialized_only'
Run Code Online (Sandbox Code Playgroud)

我在settings.py文件中编写了以下代码:

if DEBUG:
    MIDDLEWARE += [
        'debug_toolbar.middleware.DebugToolbarMiddleware',
    ]

    INSTALLED_APPS += [
        'debug_toolbar',
    ]

    import os
    import socket
    hostname, _, ips = socket.gethostbyname_ex(socket.gethostname())
    INTERNAL_IPS = [ip[: ip.rfind(".")] + ".1" for ip in ips] + ["127.0.0.1", "10.0.2.2"]
Run Code Online (Sandbox Code Playgroud)

我在 urls.py 文件中编写了以下代码:

if settings.DEBUG:
    import debug_toolbar
    urlpatterns += [
        path('__debug__/', include(debug_toolbar.urls)),
    ]
Run Code Online (Sandbox Code Playgroud)

tam*_*mat 14

由于某种原因,django-debug-toolbar==3.5.0低于 4.1b1 的版本破坏了与 Django 的向后兼容性。

在 3.5.0 中添加了下一个更改: https://github.com/jazzband/django-debug-toolbar/commit/4b77ec74f2d326013d715453d7a2219e574c3f6a#diff-72ecd973e54107d746eff0947206cbdbe24cbb3c42216b00615 e64d49ca70d73R216-R217

但这些更改需要 Django 4.1b1 中的更改才能工作: https://github.com/django/django/commit/4f92cf87b013801810226928ddd20097f6e4fccf#diff-dbe1d4538efcca9f9a6157d5d3de919e0844835a7ccc698bb8c5d4a 9eb06e274R75-R81

在问题解决之前将 django-debug-toolbar 版本修复至 3.4.0 。github 中打开的问题: https ://github.com/jazzband/django-debug-toolbar/issues/1645

UPD:Django 3.2.4+ 也可以工作,这可能是更好的解决方案。