将 django-debug 添加到 App 后,得到“'djdt' is not a registered namespace”
After adding django-debug to App, getting "'djdt' is not a registered namespace"
我的问题是关于设置使用 django-debug。
安装工具栏和面板并在我的应用程序中启用它们后出现上述错误。我已经看到很多关于这个问题或一个密切相关的问题的建议,但我尝试过的任何事情都没有帮助。
/usr/lib/python3.6/site-packages/debug_toolbar/templates/debug_toolbar/base.html 模板渲染期间的特定错误来自:
16 data-render-panel-url="{% url 'djdt:render_panel' %}"
我的相关 settings.py 条目:
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:
if settings.DEBUG:
try:
import debug_toolbar
urlpatterns += [url(r'^__debug__/', include(debug_toolbar.urls))]
except ImportError:
pass
我尝试过的:
- 更改 settings.py 中这些中间件条目的顺序(第一、中间和最后)
- 将名称空间属性添加到我的 urlpatterns 条目
感谢任何进一步的建议。
您似乎同时使用了 debug_toolbar
和 debug_panel
在调试面板的 documentation 中提到您需要删除 debug_toolbar
。
Replace the Django Debug Toolbar middleware with the Django Debug
Panel one.
替换:
MIDDLEWARE_CLASSES = (
...
'debug_toolbar.middleware.DebugToolbarMiddleware',
...
)
与:
MIDDLEWARE_CLASSES = (
...
'debug_panel.middleware.DebugPanelMiddleware',
...
)
我建议不要使用 django-debug-panel,因为它没有得到积极维护。它最后一次修改是在 3 年前。
您需要手动添加 'djdt' 路由到 urls.py 的末尾(如果您在应用中使用 'namespace',请将以下代码添加到项目中的 'urls.py' ):
if settings.DEBUG:
import debug_toolbar
urlpatterns += [
url(r'^__debug__/', include(debug_toolbar.urls)),
]
如果我们将 DEBUG
设置为 False
时出现此问题,则只需从列表中删除 debugtoolbar 中间件即可解决问题。
- settings.py
MIDDLEWARE = [
'debug_toolbar.middleware.DebugToolbarMiddleware',
'django.middleware.security.SecurityMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.common.CommonMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware',
]
if DEBUG is False:
del MIDDLEWARE[0]
- urls.py
from django.conf import settings
from django.conf.urls import include
...
if settings.DEBUG:
import debug_toolbar
urlpatterns = [
path('__debug__/', include(debug_toolbar.urls)),
] + urlpatterns
错误是由于我们声明了它的中间部分,但是在 DEBUG = FALSE 的情况下模块没有导入。所以,只需检查添加它的中间部分,以防 DEDEUG 设置为 TRUE
settings.py
MIDDLEWARE = [
...
'django.middleware.security.SecurityMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.common.CommonMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware',
....
]
if DEBUG:
MIDDLEWARE = ['debug_toolbar.middleware.DebugToolbarMiddleware'] + MIDDLEWARE
urls.py
if settings.DEBUG:
import debug_toolbar
urlpatterns = [
path('__debug__/', include(debug_toolbar.urls)),
] + urlpatterns
请确保将以下内容放在项目的末尾 urls.py 而不是应用程序 urls.py
if settings.DEBUG:
import debug_toolbar
urlpatterns += [
path('__debug__/', include(debug_toolbar.urls)),
]
还要确保在 settings.py
中添加以下内容
if DEBUG:
MIDDLEWARE += (
'debug_toolbar.middleware.DebugToolbarMiddleware',
)
INSTALLED_APPS += (
'debug_toolbar',
)
INTERNAL_IPS = ('127.0.0.1',)
DEBUG_TOOLBAR_CONFIG = {
'INTERCEPT_REDIRECTS': False,
}
我的问题是关于设置使用 django-debug。 安装工具栏和面板并在我的应用程序中启用它们后出现上述错误。我已经看到很多关于这个问题或一个密切相关的问题的建议,但我尝试过的任何事情都没有帮助。
/usr/lib/python3.6/site-packages/debug_toolbar/templates/debug_toolbar/base.html 模板渲染期间的特定错误来自:
16 data-render-panel-url="{% url 'djdt:render_panel' %}"
我的相关 settings.py 条目:
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:
if settings.DEBUG:
try:
import debug_toolbar
urlpatterns += [url(r'^__debug__/', include(debug_toolbar.urls))]
except ImportError:
pass
我尝试过的:
- 更改 settings.py 中这些中间件条目的顺序(第一、中间和最后)
- 将名称空间属性添加到我的 urlpatterns 条目
感谢任何进一步的建议。
您似乎同时使用了 debug_toolbar
和 debug_panel
在调试面板的 documentation 中提到您需要删除 debug_toolbar
。
Replace the Django Debug Toolbar middleware with the Django Debug Panel one.
替换:
MIDDLEWARE_CLASSES = (
...
'debug_toolbar.middleware.DebugToolbarMiddleware',
...
)
与:
MIDDLEWARE_CLASSES = (
...
'debug_panel.middleware.DebugPanelMiddleware',
...
)
我建议不要使用 django-debug-panel,因为它没有得到积极维护。它最后一次修改是在 3 年前。
您需要手动添加 'djdt' 路由到 urls.py 的末尾(如果您在应用中使用 'namespace',请将以下代码添加到项目中的 'urls.py' ):
if settings.DEBUG:
import debug_toolbar
urlpatterns += [
url(r'^__debug__/', include(debug_toolbar.urls)),
]
如果我们将 DEBUG
设置为 False
时出现此问题,则只需从列表中删除 debugtoolbar 中间件即可解决问题。
- settings.py
MIDDLEWARE = [
'debug_toolbar.middleware.DebugToolbarMiddleware',
'django.middleware.security.SecurityMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.common.CommonMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware',
]
if DEBUG is False:
del MIDDLEWARE[0]
- urls.py
from django.conf import settings
from django.conf.urls import include
...
if settings.DEBUG:
import debug_toolbar
urlpatterns = [
path('__debug__/', include(debug_toolbar.urls)),
] + urlpatterns
错误是由于我们声明了它的中间部分,但是在 DEBUG = FALSE 的情况下模块没有导入。所以,只需检查添加它的中间部分,以防 DEDEUG 设置为 TRUE
settings.py
MIDDLEWARE = [
...
'django.middleware.security.SecurityMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.common.CommonMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware',
....
]
if DEBUG:
MIDDLEWARE = ['debug_toolbar.middleware.DebugToolbarMiddleware'] + MIDDLEWARE
urls.py
if settings.DEBUG:
import debug_toolbar
urlpatterns = [
path('__debug__/', include(debug_toolbar.urls)),
] + urlpatterns
请确保将以下内容放在项目的末尾 urls.py 而不是应用程序 urls.py
if settings.DEBUG:
import debug_toolbar
urlpatterns += [
path('__debug__/', include(debug_toolbar.urls)),
]
还要确保在 settings.py
中添加以下内容if DEBUG:
MIDDLEWARE += (
'debug_toolbar.middleware.DebugToolbarMiddleware',
)
INSTALLED_APPS += (
'debug_toolbar',
)
INTERNAL_IPS = ('127.0.0.1',)
DEBUG_TOOLBAR_CONFIG = {
'INTERCEPT_REDIRECTS': False,
}