Тут посоветовали
django-cleanup
-- это действительно хорошее решение, но когда в каких-то моделях нужно удалять, а в других не нужно, или даже разное поведение с файлами в разных местах (где-то удалять файлы, а где-то оставлять), то есть другое решение:
Допустим есть модель:
class tb_icons(models.Model):
image = models.ImageField(max_length=128, verbose_name=u"картинка")
# ...
# ...
Если хочешь удалить запись из таблицы
tb_icons
и сопутствующий файл из
image
делаешь так (например, для удаления первой записи):
tb_icons.objects.get(id=1).image.delete(save=True)
tb_icons.objects.get(id=1).delete()
Соответственно если
save=False
файл удаляться не будет.