Для <select>..</select>
данные POST
отправляют value=".."
выбранного <option>
, поэтому, если вы хотите MachineA
, вы должны отправить его с 'machine': '1'
в качестве полезной нагрузки:
запросы на импорт
URL = 'http://127.0.0.1:8000/recoater/new/'
payload = {
'data': '40',
'machine': <b>'1'</b>,
}
r = requests.post(URL, data=payload)
print (r)
print(r.text)
Формы Django (или другие механизмы, обрабатывающие запрос) имеют логику для сопоставления этого значения с машиной, которая связана с этим значением: в конце концов, текств этом варианте просто текстовое представление *1013* объекта Machine
может содержать много (дополнительных) данных, которые не отображаются (или отображаются, но неструктурированно).
Таким образом, браузер запрашивает веб-страницу:
<select <b>name="machine"</b> required id="id_machine">
<option <b>value=""</b>>---------</option>
<option <b>value="1"</b>>MachineA</option>
</select>
Отправляет в данных POST
запись, связывающую name
<select>
(здесь 'machine'
), которая являетсясвязанный с value
выбранной опции (здесь ''
или '1'
).Точно так же, как <input name="data" type="text">
имеет также параметр value
, для которого установлено значение, которое вы вводите в текстовое поле.