2010-06-03 64 views
0

我通常使用Firefox,並且在我的Django網站上與管理頁面沒有任何問題。但是我使用Emacs23編寫我的帖子,並希望能夠在Emacs中使用w3m來複制這些內容。當我嘗試登錄到我的管理頁面,它提供了CSRF錯誤:嘗試在Emacs23上使用w3m登錄到Django管理頁面時出現CSRF錯誤

CSRF verification failed. Request aborted. 

Help 

Reason given for failure: 

    No CSRF or session cookie. 

... 

有沒有辦法,我能得到的w3m與我的管理頁面的工作方式?我不確定問題出在管理員在Django上設置或使用Emacs或w3m設置的方式。

回答

1

對於所有表單POST,Django 1.2默認需要CSRF token。我認爲沒有辦法通過API調用獲取令牌,以便能夠從Emacs發佈。

您可以通過複製和調整該視圖的代碼來創建一個沒有裝飾器的視圖的定製版本,從而移除對django捆綁視圖的@protect_csrf裝飾器的效果。

我從上面的有限信息猜測,它是一個非保護版本的contrib.auth的login()方法,你需要在這裏複製,我建議你把訪問這個方法放在而非非顯而易見的網址路線,以保持外部世界的一些CSRF外表。 (也就是說,不要覆蓋/ login/path - 在別的地方連線訪問這個視圖)

+0

我意識到所有的表單都給了我w3m上的相同結果,所以我假設我的問題是W3M和它的設置,而不是Django。 – Vernon 2010-06-03 12:20:03

相關問題