Django 调试工具栏在面板上显示 404
Django Debug Toolbar shows 404 on panel
只要我点击像 "Requests" 这样的面板,我的 Django-Debug-Toolbar 就会生成一个 Http404。我多次检查我的配置,但找不到问题所在。
版本:
- django-debug-toolbar == 1.8
- django == 1.11.1
settings.py
# DEBUG TOOLBAR
if DEBUG:
def custom_show_toolbar(request):
""" Only show the debug toolbar to users with the superuser flag. """
#return request.user.is_superuser
if request.is_ajax():
return False
return True
MIDDLEWARE += (
'debug_toolbar.middleware.DebugToolbarMiddleware',
)
INSTALLED_APPS += (
'debug_toolbar',
)
INTERNAL_IPS = ('127.0.0.1', )
DEBUG_TOOLBAR_CONFIG = {
'INTERCEPT_REDIRECTS': False,
'SHOW_TOOLBAR_CALLBACK': 'core.settings.custom_show_toolbar',
'HIDE_DJANGO_SQL': True,
'TAG': 'body',
'SHOW_TEMPLATE_CONTEXT': True,
'ENABLE_STACKTRACES': True,
}
urls.py
urlpatterns = [
url(r'^$', core_views.home, name='home'),
#url(r'^login/$', auth_views.login, name='login'),
#url(r'^logout/$', auth_views.logout, name='logout'),
#url(r'^oauth/', include('social_django.urls', namespace='social')),
url(r'^admin/', admin.site.urls),
]
if settings.DEBUG:
import debug_toolbar
urlpatterns = [
url(r'^__debug__/', include(debug_toolbar.urls)),
] + urlpatterns
截图
问题出在您的 custom_show_toolbar
方法上。您明确禁用了 ajax 请求的工具栏。由于调试工具栏使用 ajax 请求加载面板,因此您会收到 404.
def custom_show_toolbar(request):
...
if request.is_ajax():
return False
return True
只要我点击像 "Requests" 这样的面板,我的 Django-Debug-Toolbar 就会生成一个 Http404。我多次检查我的配置,但找不到问题所在。
版本:
- django-debug-toolbar == 1.8
- django == 1.11.1
settings.py
# DEBUG TOOLBAR
if DEBUG:
def custom_show_toolbar(request):
""" Only show the debug toolbar to users with the superuser flag. """
#return request.user.is_superuser
if request.is_ajax():
return False
return True
MIDDLEWARE += (
'debug_toolbar.middleware.DebugToolbarMiddleware',
)
INSTALLED_APPS += (
'debug_toolbar',
)
INTERNAL_IPS = ('127.0.0.1', )
DEBUG_TOOLBAR_CONFIG = {
'INTERCEPT_REDIRECTS': False,
'SHOW_TOOLBAR_CALLBACK': 'core.settings.custom_show_toolbar',
'HIDE_DJANGO_SQL': True,
'TAG': 'body',
'SHOW_TEMPLATE_CONTEXT': True,
'ENABLE_STACKTRACES': True,
}
urls.py
urlpatterns = [
url(r'^$', core_views.home, name='home'),
#url(r'^login/$', auth_views.login, name='login'),
#url(r'^logout/$', auth_views.logout, name='logout'),
#url(r'^oauth/', include('social_django.urls', namespace='social')),
url(r'^admin/', admin.site.urls),
]
if settings.DEBUG:
import debug_toolbar
urlpatterns = [
url(r'^__debug__/', include(debug_toolbar.urls)),
] + urlpatterns
截图
问题出在您的 custom_show_toolbar
方法上。您明确禁用了 ajax 请求的工具栏。由于调试工具栏使用 ajax 请求加载面板,因此您会收到 404.
def custom_show_toolbar(request):
...
if request.is_ajax():
return False
return True