mirror of
				https://github.com/django/django.git
				synced 2025-10-31 09:41:08 +00:00 
			
		
		
		
	[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:
		
				
					committed by
					
						 Florian Apolloner
						Florian Apolloner
					
				
			
			
				
	
			
			
			
						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 | ||||
| ====================================== | ||||
|   | ||||
		Reference in New Issue
	
	Block a user