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() 解决了这个问题。感谢大家!