Как передать запрос методом POST в Python файл views.py?
Разрабатываю сайт на django. Есть следующая форма:
<form action="/external/" method="POST">
<div id="profile"></div>
<input type="button" value="добавить" onclick="addInput()">
<input type="button" value="создать массив" onclick="func()">
<input type="submit" value="Выполнить">
</form>
Функция addInput():
let i = 0;
function addInput() {
if (i < 5) {
i = i + 1;
let profile = document.getElementById('profile');
let div = document.createElement('div');
div.innerHTML = '<label>Значение:</label> <input type="text" name="items[]" id="box' + (i + 1) + '">';
profile.append(ip);
}
}
При нажатии на кнопку "добавить" появляется поле для ввода, по условию кол-во полей ограничено до 5. Для каждого поля id увеличивается на 1. name остается неизменным.
Функция func():
function func() {
let box = document.getElementsByName('items[]');
let items = [];
for(n=0; n < box.length; n++){
let content = box[n].value
items.push(content)
}
console.log(items)
}
Создает массив из значений, которые ввел пользователь в поле text тега input. Все работает прекрасно, НО! Как передать сформированный массив из значений методом POST? В файле views.py лежит функция:
def external(request):
items = request.POST.getlist('items[]')
run([sys.executable, 'codetest.py', items])
return render(request, 'main/test.html')
при нажатии на кнопку "выполнить" переменная items принимает только одно, последнее введенное значение пользователем, а нужно, чтобы принимала именно полученный массив, который далее должен быть принят в качестве аргумента в скрипте с последующей передачей запроса в БД. Как это реализовать?
Ответы (1 шт):
- мне кажется у тебя ошибка в функции
addInput()вместоprofile.append(ip)должно бытьprofile.append(div) - Нет необходимости добавлять
[]к имени элемента, django итак по request.POST.getlist выдаст тебе список из введенных значений. - Как-то дополнительно заморачиваться для передачи массива значений не нужно. У тебя в html коде есть форма и указан метод
post, соответственно все данные формы, которые ты заполнил автоматически уйдут на сервер как только ты нажмешь на кнопку сsubmitи ты сможешь получить их значения вdjango