Мастер форм Python Django: как изменить имя файла поля файла до сохранения данных шага?

У меня проблема с мастером форм. Я использую мастер форм с 6 шагами, а на 5-м шаге есть поле файла. Все работает нормально, за исключением случаев, когда я пытаюсь загрузить файлы с именами файлов, которые содержат символы, отличные от ascii. Я написал метод, который заменяет символы, отличные от ascii, и поместил его в метод сохранения моей модели. Это также работает.

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

Обновление: мне пришлось настроить Apache так, чтобы он принимал имена файлов, отличные от ASCII, — https://docs.djangoproject.com/en/1.4/howto/deployment/modpython/#if-you-get-a-unicodeencodeerror


person Magda    schedule 24.01.2014    source источник


Ответы (1)


Вот пример кода. Вы также можете заменить logo.jpg именем файла:

user.id_file.path.save("user/"+str(user.id)+"/logo.jpg", form.cleaned_data['logo'])
user.id_file.save()
person Priyank Patel    schedule 24.01.2014
comment
Спасибо, Приянк, но куда мне вставить этот код? В моей форме или в представлении мастера? - person Magda; 24.01.2014