Python 将自定义中间件添加到settings.py时,Django应用程序ERR_EMPTY_响应

Python 将自定义中间件添加到settings.py时,Django应用程序ERR_EMPTY_响应,python,django,middleware,Python,Django,Middleware,我在project/app/middleware.py文件中创建了一个LoggedInUserMiddleware,并将其作为project/master/settings.py文件的中间件部分的最后一个条目添加。在将其添加到settings.py之前,该应用程序响应良好。将其添加到settings.py后,我会从我的应用程序的任何url获得一个ERR_EMPTY_响应 我的LoggedInUserMiddleware目前看起来像这样,只是为了让它不会崩溃 class LoggedInUserM

我在project/app/middleware.py文件中创建了一个LoggedInUserMiddleware,并将其作为project/master/settings.py文件的中间件部分的最后一个条目添加。在将其添加到settings.py之前,该应用程序响应良好。将其添加到settings.py后,我会从我的应用程序的任何url获得一个ERR_EMPTY_响应

我的LoggedInUserMiddleware目前看起来像这样,只是为了让它不会崩溃

class LoggedInUserMiddleware(object):
    def process_request(self, request):
        return None
据我所知,中间件应该对每个新的html请求执行,但绝对不执行任何操作。

您已经编写了一个(Django<1.10)。如果您使用的是
中间件
设置,而不是
中间件_类
,那么您应该编写一个

一种选择是使用

但是,如果您不需要支持旧的
中间件类
设置,则无需使用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

顺便问一下,您希望
LoggedInUserMiddleware
做什么?确保您没有复制内置身份验证中间件的功能!如果匿名用户请求我的任何url,我希望中间件重定向到登录url。我刚刚意识到我所关注的链接,就像你说的,已经过时了!
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