Remove unused media files from Django project
Package provides management command cleanup_unused_media
for Django applications.
You can remove all not used media files (files without references from any Django model with FileField
or ImageField
fields or their inheritances).
Install django-unused-media
:
pip install django-unused-media
Python 2.7
, 3.6
, 3.7
, pypy
are tested with tox.
Django 1.8
, 1.9
, 1.10
, 1.11
, 2.0
, 2.1
, 2.2
, 3.0
are tested with tox.
Add django-unused-media
to INSTALLED_APPS
:
INSTALLED_APPS = (
...
'django_unused_media',
...
)
To cleanup all unused media files, run management command:
./manage.py cleanup_unused_media
By default command is running in interactive mode. List of files which are going to be removed will be displayed for confirmation. User has to confirm the action.
--noinput
, --no-input
Non interactive mode. Command will remove files without any confirmation from the user. Useful for scripts.
./manage.py cleanup_unused_media --noinput
-e
, --exclude
To avoid operating on particular files you can use exclude option.
*
as any symbol is supported.
For example, to keep .gitignore
and *.png
files you can use:
./manage.py cleanup_unused_media -e *.gitignore -e *.png
Also you can exclude entire folder or some files in that folder (path should be relative to settings.MEDIA_ROOT
):
./manage.py cleanup_unused_media -e path/to/dir/* -e path/to/dir/my*.doc
--minimum-file-age
, secondsDefault = 60 (one minute)
Minimum file age to consider for cleanup. All files younger this age will be skipped.
--remove-empty-dirs
By default script keeps empty dirs in media folder. But with this option all empty directories will be removed after cleaning process automatically.
--dry-run
Dry run without any affect on your data
--verbosity {0,1,2}
, -v {0,1,2}
Verbosity level.
At first make sure that you are in virtualenv if you use it.
Install all dependencies:
make setup
To run tests:
make test
To run static analyser:
make flake8