Как сохранить файлы в форме после перезагрузки страницы?,Джанго - PullRequest
0 голосов
/ 13 апреля 2019

Потратив несколько дней, пытаясь понять это. Может быть, это просто вопрос для вас, но, в любом случае ...

У меня есть представление для формы внутри встроенного набора форм, которая получает и сохраняет файлы + несколько текстовых полей в самой форме первичной модели.

Проблема в том, что форма + набор форм заполнены текстовыми данными для основной формы и файлами для набора форм. В случае, если основная форма недействительна, страница перезагружается, а файлы из набора форм теряются, и мне приходится прикреплять их снова. , Я хотел бы исправить эту ситуацию таким образом, чтобы файлы после повторного рендеринга страницы также присутствовали, но, к сожалению, я не могу найти решение.

Мой взгляд следующий:

# 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 полей.

1 Ответ

0 голосов
/ 30 апреля 2019

Это можно сделать с помощью приложения "file_resubmit"

...