Django带有list of built-in middleware,但是如果想要使用它们中的全部(或大部分),他必须通过大量的文档才能在settings.py文件中进行正确的排序。 / p>
是否存在所有内置Django 1.1中间件类的最佳默认顺序?即,将'n'paste复制到settings.py中的内容:
MIDDLEWARE_CLASSES = (
# perfect order here please ;-)
)
备选答案:是否存在多种可能的排序以及会有什么不同?
顺便说一句:订单 很重要,但我只知道一些默认的依赖项,比如AuthenticationMiddleware之前的SessionMiddleware。
答案 0 :(得分:10)
他们的核心Django中间件确实有default list:
MIDDLEWARE_CLASSES = (
'django.middleware.common.CommonMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
)
您可以在上面的元组末尾添加您创建或从第三方获取的任何其他内容。 Django书还提到,在视图请求中,订单从CommonMiddleware
到AuthenticationMiddleware
,最后到您的视图。在退货回复中,订单从AuthenticationMiddleware
反转为CommonMiddleware
。这是doc。
回复评论:
在搜索Django门票后,看起来这是Django开发社区的一个已知问题,我认为还没有最终答案。这是ticket,其中包含讨论以及Jacob关闭它的部分。您可能想尝试将该问题再次作为Django票证来获得正式的开发响应。