Issue with Django 3.2 and Django-storage 1.14.2 after Upgrading from Django 2.2.28

  • Upgraded from Django 2.2.28 to 3.2.
  • Using Django-storage 1.14.2.
  • Replaced CachedFilesMixin with ManifestStaticFilesStorage.
  • Post-upgrade, everything was the same; no other settings changed.
  • Issue: self.location is caching a None value that doesn’t alter.
  • Temporary Fix: Deleting the cache in the debugger manually with a del statement resolves the issue.

Code Snippet:

class StaticFilesStorage(ManifestStaticFilesStorage, S3Boto3Storage):
      def __init__(self, *args, **kwargs):
            S3Boto3Storage.__init__(self, bucket_name=settings.STATIC_FILES_BUCKET, 
                    custom_domain=domain(settings.STATIC_URL), *args, **kwargs)
            ManifestStaticFilesStorage.__init__(self, *args, **kwargs)

Error output:

File /usr/local/lib/python3.8/dist-packages/django/contrib/staticfiles/storage.py:38, in StaticFilesStorage.path(self, name)
     36 def path(self, name):
     37     if not self.location:
---> 38         raise ImproperlyConfigured("You're using the staticfiles app "
     39                                    "without having set the STATIC_ROOT "
     40                                    "setting to a filesystem path.")
     41     return super().path(name)

ImproperlyConfigured: You're using the staticfiles app without having set the STATIC_ROOT setting to a filesystem path.

PDB output showing cached None value in self.location:

(Pdb) self.base_location
'tmp/vantage/static/'
(Pdb) self.location
''
(Pdb) os.path.abspath(self.base_location)
'/app/tmp/vantage/static'
(Pdb) del self.location
(Pdb) self.location
'/app/tmp/vantage/static'
(Pdb) self._location
'tmp/vantage/static/'
(Pdb) c

The error is resolved after manually refreshing the cache on self.location