Как сохранить ввод формы в базе данных для нескольких входов одновременно в Django? - PullRequest
0 голосов
/ 28 ноября 2018

Я изучаю django и создаю приложение, которое может зарегистрировать студентов в определенном классе на основе их имени и регистрационного номера.Итак, я создал приложение, в котором пользователь может добавлять элементы формы, откуда пользователь может добавлять параметры для одновременного добавления различных учеников в форму.Таким образом, пользователь может решить, сколько учеников он хочет добавить одновременно, и добавить учеников по их имени и регистрационному номеру.Я создал следующую форму:

    <form method="post" action="/add_rules/">
        {% csrf_token %}
        <div class="field_wrapper">
            <div>
                <label>Enter Name</label>
                <input type="text" name="personname">
                <label>Enter registration number</label>
                <input type="text" name="personregnumber">
                <a href="javascript:void(0)" class="addPerson">Add</a>
                <br><br>
            </div>
        </div>
        <button type="submit">Submit</button>
    </form>

Соответствующий javascript для добавления и удаления полей ввода:

$(document).ready(function () {
        var addButton = $('.addPerson');
        var wrapper = $('.field_wrapper');
        var field_html = '<div><label>Enter name</label><input type="text" name="personname"><label>Enter registration number</label><input type="text" name="personregnumber"><a href="javascript:void(0)" class="remove_button">Remove</a><br><br></div>'

        $(addButton).click(function() {
            $(wrapper).append(field_html);
        })
        $(wrapper).on('click', '.remove_button', function(e) {
            e.preventDefault();
            $(this).parent('div').remove();
        })
    })

Я застрял в том, как добавить несколько полей данных студента вбаза данных одновременно?Будет здорово, если кто-то сможет помочь.

Понятно, что когда мне нужно добавить данные из формы в базу данных по одному, я могу сделать это с помощью следующего кода:

view.py:

    def add_student(request):
        personname = request.POST["personname"]
        personregnumber = request.POST["personregnumber"]

        given_student = Student(personname=personname,personregnumber=personregnumber)
        given_student.save()
        return render(request, 'student/studentregistered.html')

где models.py:

    class Student(models.Model):
        personname = models.CharField(max_length=100)
        personregnumber = models.CharField(max_length=100)

        def __str__(self):
            return self.personname

Как вы можете видеть выше, код прекрасно работает для добавления сведений об учениках по одному, но когда я нажимаю кнопку «Добавить», чтобы добавить нескольких учениковв то же время вышеприведенный код не работает.Может кто-нибудь сказать мне, как я могу сохранить несколько студентов одновременно в базе данных?

1 Ответ

0 голосов
/ 28 ноября 2018

Я не могу рассказать подробности о бэкэнде, если вы не предоставите некоторую логику или код из бэкэнда.Но в качестве решения практикой использования таких форм в веб-мире является использование чего-то вроде my_list[] в качестве имени для элементов ввода формы и ...

Вы можете получить доступ к опубликованному списку следующим образом (вваша функция просмотра, например):

request.POST.getlist('my_list[]')

Обратите внимание, что в отношении этой проблемы невозможно получить список, просто используя request.POST['my_list[]'], поскольку ониговорят, что это особенность (!?).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...