Задать вопрос
@withoutname

Как передать запрос методом POST?

Разрабатываю сайт на 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 принимает только одно, последнее введенное значение пользователем, а нужно, чтобы принимала именно полученный массив, который далее должен быть принят в качестве аргумента в скрипте с последующей передачей запроса в БД.
  • Вопрос задан
  • 489 просмотров
Подписаться 1 Средний 1 комментарий
Пригласить эксперта
Ответы на вопрос 1
Stalker_RED
@Stalker_RED
name="items[]"
Тогда все значение items передадутся в виде массива.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

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