Django — как настроить удаление ненужных файлов (из FileField) при удалении/изменении модели?
Для начала нужно сказать, для чего вообще было введен такое поведение. Дело в том, что удаление объекта (вы, кстати, ошибочно называете объекты моделями) еще не означает, что он ушел и больше не вернется. Удаление вполне может происходить в транзакции, которая после откатится. Разработчики Джанги верно определили, что это задача не выполнения приложения, а его администрирования. Поэтому лучшим решением будет создать для вашего приложения действие менеджмента, которое будет запускаться по крону. В нем вы можете выбирать все реально существующие файлы и копировать их в отдельное место, после чего менять это место с папкой, в которую закачиваются файлы. Если файлы хранятся на локальной машине, лучше создавать симлинки, сэкономите и время и место на диске.
Не знаю актуальна ли еще проблема, но для меня она была таковой все это время. В итоге я написал приложение которое занимаются удалением старых файлов. github.com/un1t/django-cleanup