#html #django
#HTML #django
Вопрос:
Я пытаюсь опубликовать все отмеченные флажки ввода. Поле ввода генерируется циклом for django, как показано ниже.
Из того, что я нашел до сих пор, приведенное ниже должно работать. Я полагаю, что проблема может заключаться в том, что поля ввода генерируются через forloop, если да, то как я могу обойти это? Для каждого значения добавить в список и опубликовать с помощью js?
index.html
{% for q in list %}
{% if forloop.last %}
<form method="POST" name="selectedchecks"> {% csrf_token %}
<div class="qblock">
<label class="pure-material-checkbox">
<input class="selectedchecks" type="checkbox" name="choices[]" value="{{ q }}">
<span>
<p>{{ q }}</p>
</span>
</label>
</div>
</form>
{% endif %}
{% endfor %}
views.py
if request.method == 'POST':
selected_list = request.POST.getlist('choices[]')
Что происходит, так это то, что возвращается только первое значение {{ q }}, если установлен первый флажок, если выбран любой другой флажок, кроме первого, ничего не возвращается (пустой список). Установка всех флажков также возвращает только первое значение.
Он должен публиковать все выбранные значения флажков.
Любая помощь приветствуется!
Ответ №1:
Обновить
Проблема заключалась в том, что форма повторно инициализировалась для каждой итерации цикла. Установка <form>
тега перед циклом исправила проблему!