在我的django應用程序中我將數據庫中的字符串存儲在數據庫中,然後將在用戶的主頁上顯示爲「消息」。其中一些消息包含表單,但沒有用模板語言編寫,我無法插入csrf標記(從而打破了應用程序)。如何將django csrf令牌直接嵌入到HTML中?
有沒有辦法直接從我正在編輯的python文件中插入這個令牌?我正在尋找的東西沿線︰
csrf_token = django.csrf.generate()
message = "press the button please: <form><input type='hidden' name='csrf_token' value='%s'><input type='submit' value='press here'></form>" % (csrf_token)
任何其他解決方案,將在類似的情況下工作會很好。 感謝
編輯: 其實這不會工作,因爲令牌是每個會話不同,因此將其存儲在數據庫中不是非常有用。有沒有辦法在視圖中動態加載標記?
你說的「動態加載視圖中的令牌」是什麼意思? – 2010-07-20 15:25:43
表單被存儲爲數據庫中的一個字符串,所以如果我將這個標記存儲在那裏,它會在新會話中加載時立即失效。 如果可以從視圖中加載一個新的令牌,那麼我可以在它正在渲染時攔截html,插入適當的令牌並顯示工作表單。這裏關鍵的是我沒有通過模板插入令牌。 這是否使它更清晰? – ergelo 2010-07-21 12:41:48
難道你不能只使用csrf_protect裝飾器? – sureshvv 2016-11-24 18:30:38