How can I replace/override an uploaded file?

2019-07-02 03:30发布

问题:

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)

回答1:

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()