Django 1.9,自定义中间件+ 404错误

时间:2016-11-23 08:33:57

标签: python django middleware

我编写了自定义中间件来检查用户的邀请。这个想法是限制没有邀请的用户访问网站。一切都很好,除了用户可以在404或任何其他异常发生时看到网站的某些部分,我不想要它。

我正在使用Django 1.9。在以前的版本中(我记得)有Exception中间件,但现在我没有看到它。我试图把我的中间件放在堆栈的顶部,但它没有帮助。我还可以做些什么?

让我们说,我有以下中间件:

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"),

]

谢谢!

1 个答案:

答案 0 :(得分:1)

我已经通过在我的自定义中间件中使用process_request()而不是process_view()解决了这个问题。谢谢大家!