Fixed #8175: don't open files we're about to close. This was a pesky bug to track down; thanks to charmless for tracking it down.

git-svn-id: http://code.djangoproject.com/svn/django/trunk@8637 bcc190cf-cafb-0310-a4f2-bffc1f526a37
This commit is contained in:
Jacob Kaplan-Moss 2008-08-27 21:18:45 +00:00
parent c33aeaa082
commit 8943a857a7
2 changed files with 12 additions and 1 deletions

View File

@ -78,7 +78,12 @@ class FieldFile(File):
save.alters_data = True save.alters_data = True
def delete(self, save=True): def delete(self, save=True):
self.close() # Only close the file if it's already open, which we know by the
# presence of self._file
if hasattr(self, '_file'):
self.close()
del self._file
self.storage.delete(self.name) self.storage.delete(self.name)
self._name = None self._name = None

View File

@ -40,5 +40,11 @@ if Image:
>>> p.mug_width >>> p.mug_width
16 16
# Bug #8175: correctly delete files that have been removed off the file system.
>>> import os
>>> p2 = Person(name="Fred")
>>> p2.mugshot.save("shot", ContentFile(image_data))
>>> os.remove(p2.mugshot.path)
>>> p2.delete()
"""} """}