Django 1.10和中间件

时间:2016-08-05 18:06:20

标签: django-middleware

再一次:Django 1.10。

新的中间件风格。在我们的文档中:

https://docs.djangoproject.com/en/1.10/releases/1.10/#new-style-middleware

https://docs.djangoproject.com/en/1.10/topics/http/middleware/#upgrading-pre-django-1-10-style-middleware

我需要Django调试工具栏。版本1.5与Django 1.10兼容。

这是安装文档:https://django-debug-toolbar.readthedocs.io/en/stable/installation.html

Django调试工具栏需要:

MIDDLEWARE_CLASSES = [
    # ...
    'debug_toolbar.middleware.DebugToolbarMiddleware',
    # ...
] 

好吧,我尝试将'debug_toolbar.middleware.DebugToolbarMiddleware'添加到现有的MIDDLEWARE。没有成功(服务器没有运行,一些异常会上升)。

然后我将MIDDLEWARE重命名为MIDDLEWARE_CLASSES。 工作

让我感到困扰的是:我在文档中找不到支持MIDDLEWARE_CLASSES的内容。一切正常。

你能给我一些建议:是否可以使用MIDDLEWARE_CLASSES设置?在哪里阅读这个。

1 个答案:

答案 0 :(得分:0)

由于Django 1.10引入了新的中间件风格,现有的中间件应该更新。 https://github.com/jazzband/django-debug-toolbar/issues/853

您的文件的内容应与以下内容类似:

<强> PRJ / PRJ / settings.py

# { django-debug-toolbar
DEBUG_TOOLBAR_PATCH_SETTINGS = False
INTERNAL_IPS = ['127.0.0.1', ]
if DEBUG:
    # MIDDLEWARE += ['debug_toolbar.middleware.DebugToolbarMiddleware',]
    MIDDLEWARE += ['test_app.crutch.AdaptedTo110DebugMiddleware',]
    INSTALLED_APPS += ['debug_toolbar',]
# } django-debug-toolbar

<强> PRJ / PRJ / urls.py

from django.conf import settings # for django-debug-toolbar
# { django-debug-toolbar
if settings.DEBUG:
    import debug_toolbar
    urlpatterns += [
        url(r'^__debug__/', include(debug_toolbar.urls)),
    ]
# } django-debug-toolbar

<强> PRJ / test_app / crutch.py​​

# a crutch for the debugger
from django.utils.deprecation import MiddlewareMixin
from debug_toolbar.middleware import DebugToolbarMiddleware


class AdaptedTo110DebugMiddleware(MiddlewareMixin, DebugToolbarMiddleware):
    pass