form = AddItemForm(request.POST, request.FILES)
if form.is_valid()
do_stuff
return render_to_response(blah.html, {'form':form})
Теперь форма будет иметь информацию об ошибке наряду с исходными значениями полей, но она не сохраняет выбранный файл, Как я сохраняю выбранный файл, если форма приводит проверку к сбою?
Django сохранит файл на диск только в том случае, если вы используете modelForm и успешно сохраните новый экземпляр этой модели, у которого есть fileField.
В вашем случае вам нужно получить файл из словаря request.FILES и самостоятельно сохранить его на диск. Это должно выглядеть примерно так.
input_file = request.FILES['fileformfieldname']
new_file = open('/path/to/file.xxx')
new_file.write(input_file.read())
Теперь, когда у вас есть файл, сохраненный на диск, вам просто нужно запомнить путь к файлу, чтобы вы могли открыть его снова, когда пользователь повторно отправит неудавшуюся форму.