将django-debug添加到App后,获取“’djdt’不是已注册的命名空间”

After adding django-debug to App, getting “'djdt' is not a registered namespace”

我的问题是如何设置以使用Django调试。在安装工具栏和面板并在我的应用程序中启用这些之后,我得到了上面的错误。我已经看到许多关于这个或一个密切相关的问题的建议,我所做的任何尝试都没有帮助。

在模板呈现/usr/lib/python3.6/site-packages/debug-toolbar/templates/debug-toolbar/base.html期间,特定错误来自:

1
16       data-render-panel-url="{% url 'djdt:render_panel' %}"

我的相关设置.py条目:

1
2
3
4
5
6
7
8
9
10
11
12
DEBUG = True
INSTALLED_APPS = [
    'debug_toolbar',
    'debug_panel',
    ...
]
MIDDLEWARE = [
    'debug_toolbar.middleware.DebugToolbarMiddleware',
    'debug_panel.middleware.DebugPanelMiddleware',
    ...
]
INTERNAL_IPS = ['127.0.0.1',]

附加到我的urls.py:

1
2
3
4
5
6
if settings.DEBUG:
    try:
        import debug_toolbar
        urlpatterns += [url(r'^__debug__/', include(debug_toolbar.urls))]
    except ImportError:
        pass

我试过的:

  • 更改settings.py中这些中间件条目的顺序(第一、中间和最后)
  • 向我的urlpatterns条目添加名称空间属性

感谢您的进一步建议。


似乎你在使用debug_toolbardebug_panel在调试面板的文档中提到您需要删除debug_toolbar

Replace the Django Debug Toolbar middleware with the Django Debug
Panel one.

替换:

1
2
3
4
5
MIDDLEWARE_CLASSES = (
    ...
    'debug_toolbar.middleware.DebugToolbarMiddleware',
    ...
)

用:

1
2
3
4
5
MIDDLEWARE_CLASSES = (
    ...
    'debug_panel.middleware.DebugPanelMiddleware',
    ...
)

我建议不要使用django调试面板,因为它不是主动维护的。它最后一次修改是在3年前。


您需要手动将djdt路由添加到urls.py的末尾:

1
2
3
4
5
6
7
if settings.DEBUG:
    import debug_toolbar


urlpatterns += [
    url(r'^__debug__/', include(debug_toolbar.urls)),
]