На Django можно реализовать форму с возможностью добавления нескольких элементов с использованием форм наборов (formsets).
Ниже приведен пример кода, демонстрирующий реализацию этой функции:
```python
# forms.py
from django import forms
class ItemForm(forms.Form):
name = forms.CharField(label='Название')
quantity = forms.IntegerField(label='Количество')
# views.py
from django.shortcuts import render
from django.forms import formset_factory
from .forms import ItemForm
def add_items(request):
ItemFormSet = formset_factory(ItemForm, extra=1)
if request.method == 'POST':
formset = ItemFormSet(request.POST)
if formset.is_valid():
for form in formset:
# Обработка каждой формы
name = form.cleaned_data.get('name')
quantity = form.cleaned_data.get('quantity')
# Создание элемента или другая логика
# Редирект или другая логика
else:
formset = ItemFormSet()
return render(request, 'add_items.html', {'formset': formset})
# add_items.html
<form method="post">
{{ formset.management_form }}
{% for form in formset %}
{{ form.as_p }}
{% endfor %}
<input type="submit" value="Добавить элементы">
</form>
```
В этом примере для создания форм набора используется функция `formset_factory` из модуля `django.forms`. Мы определяем класс формы `ItemForm`, который затем передаем в `formset_factory`. На каждой итерации цикла `for` в представлении `add_items` выводится форма с помощью `{{ form.as_p }}`. Когда формы отправляются, мы проходимся по каждой форме в `formset` для выполнения необходимой обработки.
Обратите внимание, что в `formset_factory` используется параметр `extra=1`, чтобы указать, что изначально нужно отобразить одну форму. Вы можете изменить это значение в зависимости от ваших потребностей.
Надеемся, что это поможет вам создать форму с возможностью добавления нескольких элементов на Django!