Ho un modulo django con due diversi pulsanti di invio, nella vista in cui è stato inviato il modulo Ho bisogno di sapere che pulsante di invio è stato premuto e prendere diverse azioni di conseguenza.Django request.POST non contiene il nome del pulsante che ha inviato il modulo
Da quello che ho letto il nome del pulsante di invio o id dovrebbe essere da qualche parte nella request.POST dizionario, ma non lì!
Questo è un frammento della mia forma:
<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>
Nella vista:
...
if 'sendPaperButton' in request.POST:
return applicants_confirmSend(request, paperID)
else:
return applicants_home(request)
sendPaperButton non è mai nel request.POST, e nessuno dei due è l'altro, devo cercare altrove?
L'unica idea che ho è quello di aggiungere un campo nascosto e modificarlo tramite javascript prima di inviare il modulo, ma che sembra tipo di superfluo dato che io sono abbastanza sicuro che i dati dovrebbero essere lì da qualche parte ...
Grazie !
Hai provato a guardare ciò che il tuo browser invia tramite un debugger http come Charles o Fiddler? –
No, non l'ho fatto, ma mi hai incuriosito da ciò che il browser inviava, quindi ho provato un browser diverso (utilizzavo Firefox 3.5, ho provato Chrome 4 e IE6), Chrome e IE6 hanno inviato l'id e il valore del pulsante, Firefox non ... indovina l'input nascosto con il valore aggiunto di Javascript è la mia unica opzione? –
Perché non utilizzare una casella di controllo o qualche altro elemento di forma appropriato? –