По умолчанию, к сожалению, Django физически не удаляет файл при удалении записи с FileField и его производными ( потомками ). Сейчас я покажу вам как это делать самим.
class MyFileModel(models.Model):
file_field_name = FileField(...)
def delete(self, *args, **kwargs):
# До удаления записи получаем необходимую информацию
storage, path = self.file_field_name.storage, self.file_field_name.path
# Удаляем сначала модель ( объект )
super(MyFileModel, self).delete(*args, **kwargs)
# Потом удаляем сам файл
storage.delete(path)
Вот и всё. Единственное, что это не решает проблему с удалением самого файла без удаления модели. С этим мы разберемся позже.