[1.7.x] Fixed #22299 -- Cleanup wizard temp files when possible.
Thanks to @erikr for the review.
Backport of fa8b473528
from master.
This commit is contained in:
parent
e3792bb95f
commit
c95a3fadb7
|
@ -1,10 +1,17 @@
|
|||
from datetime import datetime
|
||||
from importlib import import_module
|
||||
import os
|
||||
import tempfile
|
||||
|
||||
from django.http import HttpRequest
|
||||
from django.conf import settings
|
||||
|
||||
from django.contrib.auth.models import User
|
||||
from django.core.files.storage import FileSystemStorage
|
||||
from django.core.files.uploadedfile import SimpleUploadedFile
|
||||
|
||||
|
||||
temp_storage_location = tempfile.mkdtemp(dir=os.environ.get('DJANGO_TEST_TEMP_DIR'))
|
||||
temp_storage = FileSystemStorage(location=temp_storage_location)
|
||||
|
||||
|
||||
def get_request():
|
||||
|
|
|
@ -27,6 +27,11 @@ class BaseStorage(object):
|
|||
}
|
||||
|
||||
def reset(self):
|
||||
# Delete temporary files before breaking reference to them.
|
||||
wizard_files = self.data[self.step_files_key]
|
||||
for step_files in six.itervalues(wizard_files):
|
||||
for step_file in six.itervalues(step_files):
|
||||
self.file_storage.delete(step_file['tmp_name'])
|
||||
self.init_data()
|
||||
|
||||
def _get_current_step(self):
|
||||
|
|
|
@ -634,9 +634,9 @@ storage class <builtin-fs-storage>`)::
|
|||
|
||||
.. warning::
|
||||
|
||||
Please remember to take care of removing old files as the
|
||||
:class:`WizardView` won't remove any files, whether the wizard gets
|
||||
finished correctly or not.
|
||||
Please remember to take care of removing old temporary files, as the
|
||||
:class:`WizardView` will only remove these files if the wizard finishes
|
||||
correctly.
|
||||
|
||||
Conditionally view/skip specific steps
|
||||
======================================
|
||||
|
|
Loading…
Reference in New Issue