我知道以下添加中间件的方法 1)使用MIDDLEWARE_CLASSES
向django添加自定义中间件组件MIDDLEWARE_CLASSES = (
'......'
'path.to.custom.middlware',)
添加特定于视图的中间件
cache_page = decorator_from_middleware(CacheMiddleware)
@cache_page(3600)
def my_view(request):
pass
我的请求是如何创建特定于应用程序的中间件类,如
APPSPECIFIC_MIDDLEWARE_CLASSES = ( 'path.to.middlwareclass1',
'path.to.middlwareclass2',
'path.to.middlwareclass3', )
middlwareclass是函数还是类? 有没有使用url或任何其他方法来做到这一点。或者第二种方法是唯一的方法,并将所有中间件类分别添加到视图中?
更新: http://python-social-auth.readthedocs.org/en/latest/pipeline.html 与about应用程序一样,SOCIAL_AUTH_PIPELINE仅适用于社交应用程序。这与全球项目设置不同..
先谢谢
答案 0 :(得分:3)
这可能不是您想要的方式,因为django不会跟踪哪个视图来自哪个应用程序。但是您可以在process_view
内创建一些条件中间件,您可以在这里查看正在调用的视图,并在视图符合您的条件时执行某些操作(在这种情况下,视图来自特定的应用程序)。
另一种方法是,如果您使用基于类的视图,请在应用程序中创建一些视图mixin或基本视图,使用中间件进行装饰,并在应用程序的每个视图中使用它。