Image file not deleted when object with ImageField field is deleted

jul picture jul · Jul 12, 2012 · Viewed 11.8k times · Source

I've got a model Picture with an ImageField. When deleting an instance of Picture, the file set in the ImageField is not deleted.

Is it a bug? How can I do it?

Answer

Chris Pratt picture Chris Pratt · Jul 12, 2012

Deletion of files associated with FileFields and ImageFields was intentionally removed in Django 1.3. See ticket #6456. Django uses transactions extensively to prevent data corruption if something goes wrong with the request. If a deletion transaction is rolled-backed, after the file has been deleted from the filesystem, then you now have a record pointing to a non-existent file. All tickets asking for automatic deletion to return have been summarily marked "Won't Fix", so this is not going to change.

For workarounds, see this previous StackOverflow question.