Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Django调试工具栏在面板上显示404_Django_Django Debug Toolbar - Fatal编程技术网

Django调试工具栏在面板上显示404

Django调试工具栏在面板上显示404,django,django-debug-toolbar,Django,Django Debug Toolbar,我的Django调试工具栏会在我单击“请求”之类的面板时生成一个Http404。我检查了我的配置多次,但没有发现有什么问题 版本: django调试工具栏==1.8 django==1.11.1 设置.py # DEBUG TOOLBAR if DEBUG: def custom_show_toolbar(request): """ Only show the debug toolbar to users with the superuser flag. """

我的Django调试工具栏会在我单击“请求”之类的面板时生成一个Http404。我检查了我的配置多次,但没有发现有什么问题

版本:

  • django调试工具栏==1.8
  • django==1.11.1
设置.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,
    }
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
url.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,
    }
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
屏幕截图


问题在于您的
自定义显示工具栏
方法。您正在显式禁用ajax请求的工具栏。由于调试工具栏使用ajax请求加载面板,因此会得到404

def custom_show_toolbar(request):
    ...
    if request.is_ajax():
        return False
    return True

如果我没记错的话,单击面板会触发一个ajax请求来加载它。如果停止返回ajax请求的
False
,是否仍会出现错误?已修复!非常感谢你!