Несколько входов с одинаковым именем для записи в базу данных - PullRequest
0 голосов
/ 19 октября 2019

У меня есть форма и с несколькими полями с одинаковым именем, мне нужно получить эти данные в представлении Django и записать в базу данных. Сейчас я просто пытаюсь получить данные HTML и отобразить их в виде, но отображается только последнее значение формы HTML.

Просмотр

def agenda_padrao(request):
    inicio = request.POST['inicio']
    fim = request.POST['fim']
    idempresa = request.POST['id']
    if request.POST:
        for i in inicio:
            print(i)
    return render(request, 'core/agenda.html')

повестки дня. Html

<form method="POST" action="/agenda/padrao/">{% csrf_token %}
    <div class="modal-body">
        <div class="row ">
            <h3>Horários</h3><br/>
            <a class="btn btn-success" href="javascript:void(0)" id="addInput">
                <span class="glyphicon glyphicon-plus" aria-hidden="true"></span>
            </a>
        </div>
        <div id="dynamicDiv">
            <div class="row col-12">
                <input type="time" class="form-control form-control" id="inicio" name="inicio[]" style="width: 150px; margin-right: 10px;">
                <input type="time" class="form-control form-control" id="fim" name="fim" style="width: 150px;">
                <input type="hidden" name="id" value="{{ user.id_empresa }}">
            </div>
        </div>
    </div>
    <div class="modal-footer">
        <button type="button" class="btn btn-secondary" data-dismiss="modal">Cancelar</button>
        <button type="submit" class="btn btn-primary">Confirmar Horário Padrão</button>
    </div>
</form>

Javascript с добавлением полей

$(function () {
        var scntDiv = $('#dynamicDiv');

        $(document).on('click', '#addInput', function () {
            $('<p>'+
                '<input type="time" class="form-control form-control" id="inicio" name="inicio" style="width: 150px; margin-right: 10px;">'+
                '<input type="time" class="form-control form-control" id="fim" name="fim" style="width: 150px; margin-right: 10px;">' +
                        '<a class="btn btn-danger" href="javascript:void(0)" id="remInput">' +
                            '<span class="glyphicon glyphicon-minus" aria-hidden="true"></span>' +
                        '</a><br/>'+
                        '</p>').appendTo(scntDiv);
                        return false;
                        });
                        $(document).on('click', '#remInput', function () {
                        $(this).parents('p').remove();
                        });
                        });

1 Ответ

0 голосов
/ 19 октября 2019

Вы можете получить список значений входов в представлениях:

inicio = request.POST.getlist('inicio[]')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...