2016-11-23 69 views
-1

我寫了自定義中間件,它檢查來自用戶的邀請。這個想法是限制沒有邀請的用戶訪問網站。一切都很好,除了當404或其他異常發生時用戶可以看到部分網站,我不想要它。Django 1.9,自定義中間件+ 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"), 

] 

謝謝!

+0

你是什麼意思,「用戶可以看到404發生時的部分網站」。這隻有在將網站的一部分放入404頁面時纔會發生。 – RemcoGerlich

+0

我的意思是我的處理程序重定向到顯示部分網站界面的視圖。我想要有完全限制訪問界面的中間件。 –

+0

你需要顯示一些代碼。 –

回答

0

我已經通過在我的自定義中間件中使用process_request()而不是process_view()解決了該問題。謝謝大家!