Запретить get_valid_filename () изменять имя файла - PullRequest
0 голосов
/ 27 сентября 2018

Я мигрирую на Django сайт, на котором есть большой набор файлов, уже загруженных на AWS.

Некоторые из этих файлов содержат специальные символы или пробелы, которые Django перезаписывает, что делает файлы недоступными.

Пример (original_name> django_name):

unnamed (19).jpg > unnamed%20(19).jpg 

Я пытался использовать пользовательский сервер с:

class MyFileStorage(FileSystemStorage):
    def get_valid_name(self, name):
        return name

и в моих моделях:

file = models.FileField(upload_to='files/, max_length=255, storage=MyFileStorage())

, но это не помогает, файлы со специальными символами по-прежнему переименовываютсяДжанго.

Есть предложения?

1 Ответ

0 голосов
/ 27 сентября 2018

Итак, как упоминалось в комментариях, это была не та функция, которую я имел в виду, которая заменяла пробелы на% 20, это было сделано с помощью функции url() из FileSystemStorage, поэтому мне удалось это сделать.работа:

from urllib.parse import urljoin    
class MyFileStorage(FileSystemStorage):
        def url(self, name):
            url = name
            return urljoin(self.base_url, url)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...