Потратив несколько дней, пытаясь понять это. Может быть, это просто вопрос для вас, но, в любом случае ...
У меня есть представление для формы внутри встроенного набора форм, которая получает и сохраняет файлы + несколько текстовых полей в самой форме первичной модели.
Проблема в том, что форма + набор форм заполнены текстовыми данными для основной формы и файлами для набора форм. В случае, если основная форма недействительна, страница перезагружается, а файлы из набора форм теряются, и мне приходится прикреплять их снова. , Я хотел бы исправить эту ситуацию таким образом, чтобы файлы после повторного рендеринга страницы также присутствовали, но, к сожалению, я не могу найти решение.
Мой взгляд следующий:
# only the portion that in charge for the above-mentioned logic
# files are getting lost in form2. With form 1 everything is OK
def viewname(request):
if request.method == 'POST':
form1 = MainForm(request.POST, request.FILES, prefix="form1")
if form1.is_valid():
prim = form1.save(commit=False)
prim.author = request.user
form2 = inline_formset(request.POST, request.FILES,
prefix="form2", instance=prim)
else:
form2 = inline_formset(request.POST, request.FILES, prefix="form2")
context = {"form1": form1, "form2": form2}
return render(request, "create.html", context)
…
…
…
перезагрузка страницы вызвана методом clean () в формах. Он проверяет 2 поля взаимных данных, так что я не могу переместить эту проверку в валидаторы в полях формы. В любом случае необходимо получить очищенные данные для сравнения 2 полей.