Django МастХэв. Удаление файлов при удалении записи БД

Блог / Фреймворк Django

Для тех, кто знает азы фреймворка Django, не секрет, что Django имеет стандартные поля ImageField и FileField, которые автоматически сохраняют файлы и хранят адрес на них. Однако, эти модели умеют только заливать файлы на сервер и при удалении записи с базы данных все файлы и картинки остаются лежать на сервере. Все что сделано в Вегасе, должно остаться в Вегасе. Это Django. Для исправления этого недочета есть библиотека django-cleanup.

Установка django-cleanup

По стандарту, чтобы библиотека работала, ее надо установить:

pip install django-cleanup

И указать ее в INSTALLED_APPS:

INSTALLED_APPS = (
    ...
    'django_cleanup',
)

Использование django-cleanup

А для использования ничего не нужно. После установки файлы автоматически будут удаляться.

Более того, если вы используете библиотеки нарезок картинок (наподобие easy-thumbnails), которые используют БД, то эти нарезки будут автоматически удаляться, так как привязывают каскадное удаление при удалении основной записи.

Подробнее об этой библиотеке можно прочитать на GitHub.

Django МастХэв

Эта запись входит в ряд записей "Django МастХэв"

Комментарии
Написать комментарий

Написать комментарий

2017г. Karimov.info