В общем, сделал так:
при GET запросу передает в шаблон пустые формы:
formset = BranchWorkShopSet()
form = WorkShopForm()
context = {
'form': form,
'formset': formset
}
При POST запросу уже проверяем на валидность формы:
form = WorkShopForm(request.POST, request.FILES)
formset = BranchWorkShopSet(request.POST)
Если все формы валидны, то сохраняем. Но тут такой момент, чтобы сохранить formset нужно сначала сохранить основную форму и потом ее передать в конструктор formset'а. Т.е получается, сначала проверяем по очереди на валидность (основную форму и formset, как в коды выше), а потом снова создаем formset но уже с instance=saved_form:
formset = BranchWorkShopSet(request.POST, instance=saved_form)
formset.save()
Потому что если сразу, например, сохранять основную форму, а потом уже проверять formset, то может получится так, что formset не валидна и тогда зря сохраняли основную форму...
Как лучше поступить в данном случае? Сильно ли накладной будет сначала создавать formset для проверки без instance, а потом уже с instance для того чтобы сохранить?
UPD: ну и таких formset'ов на этой форме будет как минимум штук 5...
Updated 30 Sept. 2015, 22:59 by mounty.