Запрос Django. POST не содержит название кнопки, которая отправила форму

У меня есть форма django с двумя различными кнопками отправки на представлении, где форма отправлена, я должен знать, какая кнопка отправки была нажата, и примите различные меры соответственно.

Из того, что я считал имя кнопки отправки, или идентификатор должен быть где-нибудь в запросе. Словарь 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 никогда не находится в запросе. POST, и ни один не другой, я должен смотреть где-то в другом месте?

Единственная идея, которую я имею, состоит в том, чтобы добавить скрытое поле и изменить его с помощью JavaScript прежде, чем отправить форму, но это кажется довольно избыточным, так как я вполне уверен, которым данные должны быть там где-нибудь...

Спасибо!

15
задан Daniel Gollás 29 January 2010 в 03:58
поделиться

1 ответ

Не забудьте добавить параметры name и value в поля формы "button" или "input type = submit". Однажды у меня была такая же проблема, и она сводила меня с ума.

Короче говоря, поскольку request.POST содержит dict, вам нужны ключ и значение. Ключ соответствует параметру имени вашей кнопки, а значение dict - значению кнопки.

<button type="submit" value="preview">Preview</button>

не будет отражено в request.POST (нет ключа для словаря POST!), Тогда как

<button type="submit" value="preview" name="preview">Preview</button> 

будет иметь ключ "preview" со значением "preview".

29
ответ дан 1 December 2019 в 02:19
поделиться
Другие вопросы по тегам:

Похожие вопросы: