Django request.POST不包含提交表單的按鈕的名稱
我有一個django表單與兩個不同的提交按鈕,在表單提交的檢視,我需要知道什麼提交按鈕被按下並採取不同的行動相應.
從我所看到的提交按鈕的名稱或ID應該在request.POST字典的某個地方,但它不在那裡!
這是我的形式的片段:
<form id="editPaperForm" action="{{paper.editURL}}" method="POST"> <input type="submit" name="savePaperButton" id="savePaperButton" value="Save and Send Later"/> <input type="submit" name="sendPaperButton" id="sendPaperButton" value="Save and send"/> ... </form>
在檢視中:
... if 'sendPaperButton' in request.POST: return applicants_confirmSend(request, paperID) else: return applicants_home(request)
sendPaperButton從不在request.POST中,而另一個也不是,我應該在別的地方看嗎?
我唯一的想法是在傳送表單之前新增一個隱藏的欄位並通過javascript進行修改,但是似乎有些冗餘,因為我很確定資料應該在某處
謝謝!
不要忘記在表單的“按鈕”或“輸入型別=提交”欄位中新增名稱和值引數.我曾遇到同樣的問題,讓我瘋狂.
總之,作為request.POST包含一個dict,你需要一個鍵和一個值.鍵對應於您的按鈕的名稱引數,並且dict的值與按鈕的值相對應.
<button type="submit" value="preview">Preview</button>
不會在request.POST中反映(POST字典沒有關鍵字!),而
<button type="submit" value="preview" name="preview">Preview</button>
將有一個關鍵“預覽”與值“預覽”.
程式碼日誌版權宣告:
翻譯自:http://stackoverflow.com/questions/2159795/django-request-post-does-not-contain-the-name-of-the-button-that-submitted-the-f