Django динамическая форма, возвращающая только последние данные с помощью набора форм
В этом представлении я получаю только последние данные, которые ввел пользователь. Допустим, пользователь ввел 3 раза Название остановки, но на стороне сервера я получаю только последние данные, которые являются третьими. 1-й и 2-й исчезают
Это мой шаблон для формы
<form method="POST" class="add-new-form" enctype="multipart/form-data">
{{ f_formset.management_form }}
{{ ingredient }}
<div id="div_testing">
<div class="testing2">
{{ form }}
</div>
</div>
<button type="button" id="add-more-forms" onclick="duplicateForm()">
More Fields
</button>
Это моя функция добавления новой формы javascript
const xyx = document.getElementById("div_testing");
function duplicateForm() {
let forms = xyx.getElementsByClassName("testing2");
let firstForm = forms[0];
let formClone = firstForm.cloneNode(true);
xyx.appendChild(formClone);
}
А это мое представление Django
def supply_chain(request, id=0):
items = SupplyChainStops.objects.all()
formset_class = StopsFormSet
ingredient_form = SupplyChainIngredientForm(request.POST or None)
if request.method == 'POST':
form = formset_class(request.POST)
if form.is_valid() and ingredient_form.is_valid():
for frm in form:
stop_name = frm.cleaned_data.get('stop_name')
stop_longitude = frm.cleaned_data['stop_longitude']
stop_latitude = frm.cleaned_data['stop_latitude']
supply_chain_obj = SupplyChainStops(stop_name=stop_name, stop_longitude=stop_longitude,
stop_latitude=stop_latitude)
supply_chain_obj.save()
return redirect('supply-chain')
else:
form = formset_class()
context = {
'form': form,
"ingredient": ingredient_form,
# "items":items
}
return render(request, 'ingredients/supply_chain.html', context)
Вот изображение этого HTML, когда я нажимаю на кнопку add more, он добавляет еще 3 поля, что мне и нужно.
