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:
parent
c33aeaa082
commit
8943a857a7
|
@ -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):
|
||||||
|
# Only close the file if it's already open, which we know by the
|
||||||
|
# presence of self._file
|
||||||
|
if hasattr(self, '_file'):
|
||||||
self.close()
|
self.close()
|
||||||
|
del self._file
|
||||||
|
|
||||||
self.storage.delete(self.name)
|
self.storage.delete(self.name)
|
||||||
|
|
||||||
self._name = None
|
self._name = None
|
||||||
|
|
|
@ -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()
|
||||||
"""}
|
"""}
|
||||||
|
|
Loading…
Reference in New Issue