Всем привет. Использую набор форм, данные сохраняются, но создается пустая форма. Если просто заполнить форму и сохранить, все будет нормально, но если одна форма уже заполнена, а вторая пустая, то при изменении данных в первой и сохранении, сохраняется еще и пустая форма. Что можно сделать чтобы этого избежать?
views.py
def form_document(request, sale_id):
DocumentsFormSet = modelformset_factory(Documents, form=DocumentsForm, can_delete=True)
sel_sale = Sales.objects.get(id=sale_id)
forms = DocumentsFormSet(
queryset=Documents.objects.filter(sale=sel_sale),
initial=[{'sale': sel_sale.id,
'status_date': datetime.now().strftime('%Y-%m-%d'),
'upd_act_date': datetime.now().strftime('%Y-%m-%d')}])
context = {'forms': forms, 'salec': sel_sale.id}
if request.POST:
formset = DocumentsFormSet(request.POST, request.FILES, initial=[{'sale': sel_sale.id}])
if formset.has_changed() and formset.is_valid():
formset.save()
else:
context['forms'] = formset
return render(request, 'forms/_document.html', context)
forms.py
classDocumentsForm(ModelForm):
class Meta:
model = Documents
fields = "__all__"
widgets = {
'sale': HiddenInput(attrs={}),
'upd_act_date': DateInput(attrs={'type': 'date'}),
'status_date': DateInput(attrs={'type': 'date'}),
}
template
<form action="" method="post" enctype=multipart/form-data>
{{ forms.management_form }}
{% csrf_token %}
{% for form in forms %}
{{ form }}
{% endfor %}
<input type="submit" value="Сохранить">
</form>
Updated 2 March 2018, 14:02 by Denzorn.