Как я могу динамически добавлять строки в мою форму? (Django) - PullRequest
0 голосов
/ 21 марта 2020

У меня есть модель, которая подключается к форме. Вы можете предположить, что это очень простая модель с 1 атрибутом.

class Past_Location(models.Model):

    location = models.CharField(max_length=100)

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

LocationFormSet = forms.modelformset_factory(
    Past_Location,
    fields='__all__',
    extra=1,
    widgets={
        'location': forms.TextInput(
            attrs={
                'class': 'form-control',
                'placeholder': 'Enter Location Name here'
            }
        )
    }
)

Вот создание кнопки, чтобы добавить больше строк.

            <div class="input-group">
              {{ form.name }}
              <div class="input-group-append">
                <input type="text" name="name" value="">
                <button id="add" type="button" class="btn btn-success add-form-row">+</button>
              </div>
            </div>

views.py

def form_name_view(request):
    form = forms.NewPatientForm()
    if request.method == 'GET':
        form = NewPatientForm(request.GET or None)
        formset = LocationFormSet(queryset=Past_Location.objects.none())
        print("Hey1")
    elif request.method == 'POST':
        print("Hey2")
        form = NewPatientForm(request.POST)
        formset = LocationFormSet(request.POST)

        if form.is_valid() and formset.is_valid():
            patient_info = form.save()
            for loc in formset:

                location = loc.save(commit=False)
                location.save()
                location.patient.add(patient_info)
                location.save()

            return index(request)
        else:
            print('Error Form Invalid')

    return render(request, 'first_app/form_page.html', {'form':form,'formset':formset})

Я думал, что класса «add-form-row» будет достаточно, чтобы динамически добавлять больше строк, но этого не было. Поэтому я хотел последовать некоторым примерам и использовать jquery, чтобы добавить больше строк. Однако, поскольку моя форма отражена от модели, я не знаю, как получить доступ и добавить новую строку с помощью jquery. Я хотел опубликовать MVP, однако проект слишком сложный и содержит слишком много необходимых файлов. Поэтому я хотел бы знать, каков стандартный способ взаимодействия с модельными формами через jquery?

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