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

CodeMantle picture CodeMantle · Aug 23, 2018 · Viewed 8.3k times · Source

My question is about setting up to use django-debug. I'm getting the above error after installing the toolbar and panel, and enabling these in my app. I've seen many suggestions for this or a closely related issue, and nothing I've tried has helped.

The specific error, during template rendering of /usr/lib/python3.6/site-packages/debug_toolbar/templates/debug_toolbar/base.html, is from:

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

My relevant settings.py entries:

DEBUG = True
INSTALLED_APPS = [
    'debug_toolbar',
    'debug_panel',
    ...
]
MIDDLEWARE = [
    'debug_toolbar.middleware.DebugToolbarMiddleware',
    'debug_panel.middleware.DebugPanelMiddleware',
    ...
]
INTERNAL_IPS = ['127.0.0.1',]

Appended to my urls.py:

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

What I've tried:

  • changing the order of these Middleware entries in settings.py (first, middle and last)
  • adding a namespace attribute to my urlpatterns entry

Thanks for any further suggestions.

Answer

Milad Hatami picture Milad Hatami · Apr 27, 2019

You need to manually add 'djdt' routes to the end of urls.py (if you use 'namespace' in your apps, add below codes to 'urls.py' in your project):

if settings.DEBUG:
    import debug_toolbar

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