我想在加载我的应用程序中的任何视图之前运行一个函数,所以我编写了自己的中间件。它位于名为“DoBeforeMiddleWare.py”的文件中,位于文件夹“my_app_name”中,现在看起来像
class DoBeforeMiddleWare:
def process_request(self, request):
return None
def process_view(self, request, view_func, view_args, view_kwargs):
return None
我尝试将此功能放在settings.py中的中间件列表中:
MIDDLEWARE_CLASSES = (
'django.middleware.common.CommonMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'my_project_name.my_app_name.DoBeforeMiddleWare',
)
然而,我的应用程序在重新启动乘客后从未加载。为什么?如果我注释掉| MIDDLEWARE_CLASSES |。
的最后一行,我的应用程序会加载答案 0 :(得分:1)
process_request
和process_view
必须返回None
或HttpResponse
个对象(reference)。如果您需要no-op中间件,则应将其更改为None,如下所示:
class DoBeforeMiddleWare:
def process_request(self, request):
return None
def process_view(self, request, view_func, view_args, view_kwargs)
return None