Search code examples
djangofile-uploaduploadreplacefilefield

How can I replace/override an uploaded file?


I want to be able to upload a file and on each upload to override/replace the existing file with the newest version.

from django.core.files.storage import FileSystemStorage  
fs = FileSystemStorage(location='C:/temp', base_url='/attachments')      
class Import(models.Model):  
    file = models.FileField(upload_to='data', storage=fs)

Solution

  • I don't know if this is the best approach, but the following lines helped me override/replace the existing file.

    upload_dir_path = Setting.objects.get(entry__exact='upload_path').value
    delete_files(upload_dir_path)
    upload = form.save(commit=False)
    upload.file.storage.location = upload_dir_path            
    upload = form.save()