Как заставить форму Django сохранить файл после провальной проверки

form = AddItemForm(request.POST, request.FILES)

if form.is_valid()

   do_stuff

return render_to_response(blah.html, {'form':form})

Теперь форма будет иметь информацию об ошибке наряду с исходными значениями полей, но она не сохраняет выбранный файл, Как я сохраняю выбранный файл, если форма приводит проверку к сбою?

21
задан bragboy 7 September 2010 в 09:37
поделиться

1 ответ

Django сохранит файл на диск только в том случае, если вы используете modelForm и успешно сохраните новый экземпляр этой модели, у которого есть fileField.

В вашем случае вам нужно получить файл из словаря request.FILES и самостоятельно сохранить его на диск. Это должно выглядеть примерно так.

input_file = request.FILES['fileformfieldname']
new_file = open('/path/to/file.xxx')
new_file.write(input_file.read())

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

2
ответ дан 29 November 2019 в 21:38
поделиться
Другие вопросы по тегам:

Похожие вопросы: