Django 1.9,自定义中间件+404错误
Django 1.9, custom middleware + 404 error
我编写了自定义中间件来检查来自用户的邀请。这个想法是限制没有邀请的用户访问网站。一切都很好,除了当 404 或任何其他异常发生时用户可以看到网站的部分内容,而我不想要它。
我正在使用 Django 1.9。在以前的版本中(我记得)有异常中间件,但现在我看不到了。我试图将我的中间件放在堆栈的顶部,但它没有帮助。我还可以做些什么?
比方说,我有以下中间件:
MIDDLEWARE_CLASSES = [
'django.middleware.security.SecurityMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'myproject.middleware.InviteLoginForWebsiteMiddleware',
'django.middleware.common.CommonMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.auth.middleware.SessionAuthenticationMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware',
'django.middleware.locale.LocaleMiddleware',
]
这是我重定向到处理程序的网址:
urlpatterns = [
url(r'^403/$', views.handler403, name="403"),
url(r'^404/$', views.handler404, name="404"),
url(r'^500/$', views.handler500, name="500"),
]
谢谢!
我已经通过在自定义中间件中使用 process_request() 而不是 process_view() 解决了这个问题。感谢大家!
我编写了自定义中间件来检查来自用户的邀请。这个想法是限制没有邀请的用户访问网站。一切都很好,除了当 404 或任何其他异常发生时用户可以看到网站的部分内容,而我不想要它。
我正在使用 Django 1.9。在以前的版本中(我记得)有异常中间件,但现在我看不到了。我试图将我的中间件放在堆栈的顶部,但它没有帮助。我还可以做些什么?
比方说,我有以下中间件:
MIDDLEWARE_CLASSES = [
'django.middleware.security.SecurityMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'myproject.middleware.InviteLoginForWebsiteMiddleware',
'django.middleware.common.CommonMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.auth.middleware.SessionAuthenticationMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware',
'django.middleware.locale.LocaleMiddleware',
]
这是我重定向到处理程序的网址:
urlpatterns = [
url(r'^403/$', views.handler403, name="403"),
url(r'^404/$', views.handler404, name="404"),
url(r'^500/$', views.handler500, name="500"),
]
谢谢!
我已经通过在自定义中间件中使用 process_request() 而不是 process_view() 解决了这个问题。感谢大家!