From 8f8b020cf0628d42c8eeffa952b9500a4bcc9d7d Mon Sep 17 00:00:00 2001 From: soh55 <109045159+soh55@users.noreply.github.com> Date: Thu, 6 Jul 2023 22:57:28 -0500 Subject: [PATCH] Update models.py Django 4.2 deprecated `get_storage_class`. Publishing a change to source storage from `from django.core.files.storage import storages` --- avatar/models.py | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/avatar/models.py b/avatar/models.py index eca4f67..541041d 100644 --- a/avatar/models.py +++ b/avatar/models.py @@ -5,7 +5,7 @@ from io import BytesIO from django.core.files import File from django.core.files.base import ContentFile -from django.core.files.storage import get_storage_class +from django.core.files.storage import storages from django.db import models from django.db.models import signals from django.utils.encoding import force_bytes, force_str @@ -17,7 +17,18 @@ from PIL import Image, ImageOps from avatar.conf import settings from avatar.utils import get_username, invalidate_cache -avatar_storage = get_storage_class(settings.AVATAR_STORAGE)() + +try: + # From Django 4.2 use django.core.files.storage.storages in favor + # of the deprecated django.core.files.storage.get_storage_class + from django.core.files.storage import storages + + avatar_storage = storages["staticfiles"].__class__ +except ImportError: + # Backwards compatibility for Django versions prior to 4.2 + from django.core.files.storage import get_storage_class + + avatar_storage = get_storage_class(settings.STATICFILES_STORAGE) def avatar_path_handler(