【发布时间】:2018-10-22 10:22:19
【问题描述】:
我正在使用一些自定义中间件来检查用户的身份验证。这很好用,但我不想在每个 url 上运行这个中间件。
Suggestions 指向使用@decorator_from_middleware
在您希望中间件运行的每个视图之前,这将是理想的。我的一些观点应该是全球性的,而另一些则落后于身份验证。
我似乎无法导入中间件以在视图文件中调用它。
我的意见.py:
from myapp.middleware import *
@decorator_from_middleware(AuthCheckMiddleware)
def index(request):
return render(request, "index.html")
我的 myapp.middleware.authCheck.py:
class AuthCheckMiddleware(object):
def __init__(self, get_response):
self.get_response = get_response
def __call__(self, request):
#CHECK AUTH HERE
response = self.get_response(request)
return response
def process_exception(self, request, exception):
return None
我得到的错误:
File "/vagrant/myapp/django-project/isadmin/web/views.py", line 93, in <module>
@decorator_from_middleware(AuthCheckMiddleware)
NameError: name 'AuthCheckMiddleware' is not defined
【问题讨论】:
标签: python django middleware