У меня есть рабочая модель из двух форм, которые я хотел бы объединить:
forms.py:
FS1 = modelformset_factory(SettRelation, fields=("sett", "qty", ),
extra=1,
widgets={'sett': forms.Select(attrs={'class': 'form-control'}),
'qty': forms.NumberInput(attrs={'class': 'form-control',})})
FS2 = modelformset_factory(PartRelation, fields=("part", "qty", ),
extra=1,
widgets={'part': forms.Select(attrs={'class': 'form-control'}),
'qty': forms.NumberInput(attrs={'class': 'form-control',})})
views.py:
def create_inq_with_sets(request):
if request.method == 'GET':
inquiry_form = InquiryModelForm(request.GET or None)
setts_form = FS1(queryset=SettRelation.objects.none())
parts_form = FS2(queryset=PartRelation.objects.none())
elif request.method == 'POST':
inquiry_form = InquiryModelForm(request.POST)
setts_form = FS1(request.POST)
parts_form = FS2(request.POST)
if inquiry_form.is_valid() and setts_form.is_valid() and parts_form.is_valid():
i = inquiry_form.save()
for form in setts_form:
tmp = form.save(commit=False)
tmp.inquiry = i
tmp.save()
for form in parts_form:
tmp = form.save(commit=False)
tmp.inquiry = i
tmp.save()
return redirect("inquiry-list")
return render(request, "gap/add_inquiry.html", {"inquiry": inquiry_form,
"setts": setts_form,
"parts": parts_form, })
. html (упрощенно):
{{ setts.management_form }}
{% for sett in setts %}
{{ sett.sett }}
{{ sett.qty}}
{% endfor %}
{{ parts.management_form }}
{% for part parts %}
{{ part.part}}
{{ part.qty}}
{% endfor %}
Я хотел бы объединить два набора форм в одном раскрывающемся меню, как показано на рисунке - могу ли я сделать это с помощью шаблона?