Проблема с автоматическим URL-кодированием поля файла Django

#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. Что делать, если файл не сохранен мной, но значение этого поля вручную обновляется в БД?