Я пытаюсь создать страницу проверки, в которой перечислены все люди, которые зарегистрировались. У каждого человека есть поле ввода, в котором указано количество часов, которые были на мероприятии. Я хочу, чтобы одна и та же форма была представлена несколько раз для каждого человека; Я не хочу иметь кнопку отправки для каждого человека, потому что будет несколько человек, и это будет утомительно. Я использую цикл for {% for signups in signup %}
, чтобы пройти через набор запросов для людей, которые зарегистрированы.Django - отправьте несколько форм с помощью одной кнопки отправки
В бэкэнде, я хочу, чтобы сохранить количество часов к ряду в QuerySet с совпадающим именем.
HTML:
<form action="/events/occ_checkin" class="form" method="POST" id="checkin_{{ signups.id }}" name="checkin_{{ signups.id }}">{% csrf_token %}
{% for form in formset %}
<h5>
<label for="{{ form.fullname.id_for_label }}">***how would I get the attendee's name?***</label>
<input id="{{ form.fullname.id_for_label }}" name="{{ form.fullname.html_name }}" type="hidden" value="***attendee's name here as well***">
<input id="{{ form.hours.id_for_label }}" name="{{ form.hours.html_name }}" step="0.01" type="number" class="form-control" value="{{ events.hours }}">
</h5>
{% endfor %}
<button class="btn btn-primary btn-block" type="submit">Submit</button>
</form>
https://docs.djangoproject.com/ru/1.10/topics/forms/formsets/ специально может захотеть проверить. ModelFormset. – shark3y
Хорошо. Я пробовал использовать formsets, но не могу определить способ отображения имен участников события. Я использовал цикл for для итерации через участников {% для регистрации в signup%} {{signups.fullname}} * form stuff * {% endfor%} '. Но поскольку я использую '{% for form in formset%}', я не могу придумать способ получить имена каждого участника без повторения их несколько раз. Я редактировал свой вопрос, чтобы иметь текущий код html. –
В форме модели вы можете получить доступ к связанной модели через атрибут «instance», если я не ошибаюсь. Это не в моей голове, но документация django, безусловно, может подтвердить. – shark3y