mirror of
https://github.com/jazzband/django-avatar.git
synced 2026-05-12 09:33:12 +00:00
Delete avatars from file storage when avatar is deleted (#174)
* added custom delete method to Avatar model inorder to delete avatars from file storage * simplified chained expression to pass linting * linting * stopped using reserved keyword dir * changed remove_avatar_images so it deletes all generated avatars * went back to using queryset delete * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci Co-authored-by: Johannes Wilm <mail@johanneswilm.org> Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
This commit is contained in:
parent
1dd993358b
commit
8017d6fc4c
1 changed files with 7 additions and 4 deletions
|
|
@ -202,10 +202,13 @@ def create_default_thumbnails(sender, instance, created=False, **kwargs):
|
|||
|
||||
|
||||
def remove_avatar_images(instance=None, **kwargs):
|
||||
if hasattr(instance, "user"):
|
||||
for size in settings.AVATAR_AUTO_GENERATE_SIZES:
|
||||
if instance.thumbnail_exists(size):
|
||||
instance.avatar.storage.delete(instance.avatar_name(size))
|
||||
base_filepath = instance.avatar.name
|
||||
path, filename = os.path.split(base_filepath)
|
||||
# iterate through resized avatars directories and delete resized avatars
|
||||
resized_sizes, _ = instance.avatar.storage.listdir(os.path.join(path, "resized"))
|
||||
for size in resized_sizes:
|
||||
if instance.thumbnail_exists(size):
|
||||
instance.avatar.storage.delete(instance.avatar_name(size))
|
||||
if instance.avatar.storage.exists(instance.avatar.name):
|
||||
instance.avatar.storage.delete(instance.avatar.name)
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue