我在project / app / middleware.py文件中创建了一个LoggedInUserMiddleware,并将其添加为我的project / master / settings.py文件的MIDDLEWARE部分中的最后一个条目。在将它添加到settings.py之前,应用程序响应正常。将它添加到settings.py后,我从我的应用程序的任何URL获取ERR_EMPTY_RESPONSE。
我的LoggedInUserMiddleware目前看起来像是为了试图让它不会崩溃。
class LoggedInUserMiddleware(object):
def process_request(self, request):
return None
据我了解,该中间件应该在每个新的html请求中执行,但绝对不执行任何操作。
答案 0 :(得分:0)
你写了old-style middleware(Django< 1.10)。如果您使用MIDDLEWARE
设置而不是MIDDLEWARE_CLASSES
,那么您应该写一个new-style middleware。
一种选择是使用MiddlewareMixin
。
from django.utils.deprecation import MiddlewareMixin
class LoggedInUserMiddleware(MiddlewareMixin):
def process_request(self, request):
return None
但是,如果您不需要支持旧的MIDDLEWARE_CLASSES
设置,则无需使用mixin,我将从文档中的示例开始:
class LoggedInUserMiddleware(object):
def __init__(self, get_response):
self.get_response = get_response
# One-time configuration and initialization.
def __call__(self, request):
# Code to be executed for each request before
# the view (and later middleware) are called.
response = self.get_response(request)
# Code to be executed for each request/response after
# the view is called.
return response