mirror of
https://github.com/jazzband/django-avatar.git
synced 2026-05-20 13:21:53 +00:00
Added post_delete signal to Avatar model in order to clean up the file system when AVATAR_MAX_AVATARS_PER_USER is equal to 1 or when Avatar instances are removed. This functionality is controlled by the new AVATAR_CLEAN_REMOVED setting which is False by default.
This commit is contained in:
parent
d84b0e5bd9
commit
b5937382ab
2 changed files with 14 additions and 1 deletions
|
|
@ -26,7 +26,8 @@ from avatar.util import invalidate_cache
|
|||
from avatar.settings import (AVATAR_STORAGE_DIR, AVATAR_RESIZE_METHOD,
|
||||
AVATAR_MAX_AVATARS_PER_USER, AVATAR_THUMB_FORMAT,
|
||||
AVATAR_HASH_USERDIRNAMES, AVATAR_HASH_FILENAMES,
|
||||
AVATAR_THUMB_QUALITY, AUTO_GENERATE_AVATAR_SIZES)
|
||||
AVATAR_THUMB_QUALITY, AUTO_GENERATE_AVATAR_SIZES,
|
||||
AVATAR_CLEAN_REMOVED)
|
||||
|
||||
|
||||
def avatar_file_path(instance=None, filename=None, size=None, ext=None):
|
||||
|
|
@ -138,4 +139,15 @@ def create_default_thumbnails(instance=None, created=False, **kwargs):
|
|||
for size in AUTO_GENERATE_AVATAR_SIZES:
|
||||
instance.create_thumbnail(size)
|
||||
|
||||
|
||||
def remove_avatar_images(instance=None, **kwargs):
|
||||
for size in AUTO_GENERATE_AVATAR_SIZES:
|
||||
if instance.thumbnail_exists(size):
|
||||
instance.avatar.storage.delete(instance.avatar_name(size))
|
||||
instance.avatar.storage.delete(instance.avatar.name)
|
||||
|
||||
|
||||
signals.post_save.connect(create_default_thumbnails, sender=Avatar)
|
||||
|
||||
if AVATAR_CLEAN_REMOVED:
|
||||
signals.post_delete.connect(remove_avatar_images, sender=Avatar)
|
||||
|
|
|
|||
|
|
@ -22,3 +22,4 @@ AVATAR_HASH_FILENAMES = getattr(settings, 'AVATAR_HASH_FILENAMES', False)
|
|||
AVATAR_HASH_USERDIRNAMES = getattr(settings, 'AVATAR_HASH_USERDIRNAMES', False)
|
||||
AVATAR_ALLOWED_FILE_EXTS = getattr(settings, 'AVATAR_ALLOWED_FILE_EXTS', None)
|
||||
AVATAR_CACHE_TIMEOUT = getattr(settings, 'AVATAR_CACHE_TIMEOUT', 60*60)
|
||||
AVATAR_CLEAN_REMOVED = getattr(settings, 'AVATAR_CLEAN_REMOVED', False)
|
||||
|
|
|
|||
Loading…
Reference in a new issue