В Django я хочу прекратить загрузку файлов, которые не заканчиваются на указанном мной расширении, как только они будут получены. Для этого я определяю собственный обработчик загрузки и пишу new_file, чтобы он выглядел примерно так:
def new_file(self, field_name, file_name, content_type, content_length, charset=None):
basename, extension = os.path.splitext(file_name)
if extension != ".txt":
raise StopUpload(True) # Error: Only .txt files are accepted
Это прекрасно работает для остановки загрузки, но также очищает запрос. ФАЙЛЫ. Теперь, когда мое представление получает запрос, он не может определить, вызвал ли обработчик загрузки файл, и я не могу отобразить полезное сообщение для пользователя.
Можно ли каким-либо образом распространять сообщения из обработчика загрузки в соответствующее представление, чтобы я мог отобразить ошибку пользователю? Я пытался использовать объект запроса, но он неизменен.