#34929: Issue with Django 3.2 and Django-storage 1.14.2 after Upgrading from
Django
2.2.28
-------------------------------------+-------------------------------------
Reporter: Akash Ilangovan | Owner: nobody
Type: Bug | Status: new
Component: Utilities | Version: 3.2
Severity: Normal | Resolution:
Keywords: static files, | Triage Stage:
ManifestStaticFilesStorage | Unreviewed
Has patch: 0 | Needs documentation: 0
Needs tests: 0 | Patch needs improvement: 0
Easy pickings: 0 | UI/UX: 0
-------------------------------------+-------------------------------------
Description changed by Akash Ilangovan:
Old description:
> - 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:
> {{{#!python
> 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
> }}}
New description:
- 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:
{{{#!python
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
--
--
Ticket URL: <https://code.djangoproject.com/ticket/34929#comment:2>
Django <https://code.djangoproject.com/>
The Web framework for perfectionists with deadlines.
--
You received this message because you are subscribed to the Google Groups
"Django updates" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To view this discussion on the web visit
https://groups.google.com/d/msgid/django-updates/0107018b6cca0cda-11c95318-ef84-48dc-863e-157057bb12f5-000000%40eu-central-1.amazonses.com.