我编写了自定义中间件来检查用户的邀请。这个想法是限制没有邀请的用户访问网站。一切都很好,除了用户可以在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"),
]
谢谢!
答案 0 :(得分:1)
我已经通过在我的自定义中间件中使用process_request()而不是process_view()解决了这个问题。谢谢大家!