2013-04-30 100 views
0

我正在編寫一個django服務器。一個非常奇怪的情況發生 - 當我試圖測試它,我POST到其中一個網址,只有process_request中間件被擊中,而process_view和視圖功能,對應於該網址沒有命中。該過程不知何故停在中間,並且​​被返回給客戶端。此外,使用相同的url(和相同的視圖函數),而不是在其他時間,並且該過程順利進行,沒有報告錯誤。所有其他視圖功能/ url正常工作。Django HttpResponseForbidden在不調用視圖函數的情況下提出

服務器有點大,所以我不打算在這裏展示所有的東西;然而,我只有兩個服裝middlewares - process_requestprocess_view,正如我所說,只有process_request它被稱爲;它不返回HttpResponseForbidden

這裏是安裝middlewares

'django.middleware.common.CommonMiddleware', 
'django.contrib.sessions.middleware.SessionMiddleware', 
'django.middleware.csrf.CsrfViewMiddleware', 
'django.contrib.auth.middleware.AuthenticationMiddleware', 
'django.contrib.messages.middleware.MessageMiddleware', 
'ttam_container.ttam.middlewares.authentication.Authentication' 

這裏是在安裝的應用程序:

'django_concurrent_test_server', 
'django.contrib.auth', 
'django.contrib.contenttypes', 
'django.contrib.sessions', 
'django.contrib.sites', 
'django.contrib.messages', 
'django.contrib.staticfiles', 
'ttam_container.ttam', 
'ttam_container.ui' 

任何想法,怎麼可能會錯呢?

+0

你能證明你的'view'和'template' ? – 2013-04-30 05:28:32

+0

它不是一個html表單,因此沒有'template' ... – 2013-05-01 00:51:11

回答

1

可能是因爲你忘了在請求中包含csrf標記。 如果您在使用HTML表單,包括csrf_token標籤在它

<form ... 
    {% csrf_token %} 
    ... 

如果使用Ajax請求 - 閱讀文檔如何使用Ajax和CSRF保護https://docs.djangoproject.com/en/1.5/ref/contrib/csrf/

+0

它不是從HTML表單的'POST' .... – 2013-04-30 20:51:16

相關問題