Вам не нужно ничего помещать в ваш settings.py
. Просто используйте его прямо в вашей модели. Например, создайте storage.py
, где бы ни находилось ваше приложение, и поместите в него OverwriteStorage()
. Тогда ваша модель может выглядеть так:
from storage import OverwriteStorage
...
class MyModel(models.Model):
...
image = ImageField(upload_to='images', storage=OverwriteStorage())
Я также использую собственную систему хранения для перезаписи существующих файлов. Мой storage.py
выглядит так:
from django.core.files.storage import FileSystemStorage
class OverwriteStorage(FileSystemStorage):
"""
Returns same name for existing file and deletes existing file on save.
"""
def _save(self, name, content):
if self.exists(name):
self.delete(name)
return super(OverwriteStorage, self)._save(name, content)
def get_available_name(self, name):
return name