我知道以下添加中间件的方法
1)使用MIDDLEWARE_CLASSES向django添加自定义中间件组件
MIDDLEWARE_CLASSES = (
'......'
'path.to.custom.middlware',)
2)使用decorate_from_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仅适用于社交应用程序.这与全球项目设置不同..
提前致谢
最佳答案
这可能不是您想要的方式,因为django不会跟踪哪个视图来自哪个应用程序.但是你可以在process_view中创建一些带有条件的中间件,你可以在这里查看被调用的视图,并在视图符合你的标准时做一些事情(在这种情况下,视图来自特定的应用程序).
另一种方法是,如果您使用基于类的视图,则在应用程序中创建一些视图mixin或基本视图,使用中间件进行装饰,并在应用程序的每个视图中使用它.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。