#python #django
#питон #джанго
Вопрос:
image_file = models.FileField(storage=s3, max_length=512, blank=True)
У меня есть модель с полем image_file, поддерживаемым хранилищем s3. Единственная проблема, с которой я сталкиваюсь с этим полем, заключается в том, что если имя файла содержит какие-либо символы, способные кодировать URL, оно автоматически закодирует имя файла. Например, если имя файла содержит @
, то при извлечении значения из модели оно становится %40
. Интересно, есть ли переключатель, который я могу отключить эту функцию/ошибку.
Данные в бд есть @
, но когда они проходят через сериализатор и представление, они становятся %40
из api json.
Ответ №1:
добавьте эту строку после файла image_file в модель:
image_file.save(filename.encode('utf-8', 'ignore'), image_file, save=True)
Комментарии:
1. Что делать, если файл не сохранен мной, но значение этого поля вручную обновляется в БД?