jmrivas86/django-json-widget

Collectstatic broken in 0.3.0+

Closed this issue · 0 comments

D3X commented
  • django-json-widget version: 0.3.0, 1.0
  • Django version: 2.2.9
  • Python version: 3.6.9
  • Operating System: Ubuntu

Description

After upgrading from 0.2.0 collectstatic fails with an exception when STATICFILES_STORAGE is set to ManifestStaticFilesStorage.

What I Did

python manage.py collectstatic --noinput
Traceback (most recent call last):
  File "manage.py", line 35, in <module>
    execute_from_command_line(sys.argv)
  File "/home/circleci/project/venv/lib/python3.6/site-packages/django/core/management/__init__.py", line 381, in execute_from_command_line
    utility.execute()
  File "/home/circleci/project/venv/lib/python3.6/site-packages/django/core/management/__init__.py", line 357, in execute
    django.setup()
  File "/home/circleci/project/venv/lib/python3.6/site-packages/django/__init__.py", line 24, in setup
    apps.populate(settings.INSTALLED_APPS)
  File "/home/circleci/project/venv/lib/python3.6/site-packages/django/apps/registry.py", line 122, in populate
    app_config.ready()
  File "/home/circleci/project/venv/lib/python3.6/site-packages/django/contrib/admin/apps.py", line 24, in ready
    self.module.autodiscover()
  File "/home/circleci/project/venv/lib/python3.6/site-packages/django/contrib/admin/__init__.py", line 26, in autodiscover
    autodiscover_modules('admin', register_to=site)
  File "/home/circleci/project/venv/lib/python3.6/site-packages/django/utils/module_loading.py", line 47, in autodiscover_modules
    import_module('%s.%s' % (app_config.name, module_to_search))
  File "/usr/local/lib/python3.6/importlib/__init__.py", line 126, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "<frozen importlib._bootstrap>", line 994, in _gcd_import
  File "<frozen importlib._bootstrap>", line 971, in _find_and_load
  File "<frozen importlib._bootstrap>", line 955, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 665, in _load_unlocked
  File "<frozen importlib._bootstrap_external>", line 678, in exec_module
  File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
  File "/home/circleci/project/venv/lib/python3.6/site-packages/suit/admin.py", line 192, in <module>
    from cms.admin.forms import PageForm
  File "/home/circleci/project/cms/admin.py", line 5, in <module>
    from core.admin.filters import RawIDListFilter
  File "/home/circleci/project/core/admin/__init__.py", line 3, in <module>
    from core.admin.models import (
  File "/home/circleci/project/core/admin/models/__init__.py", line 21, in <module>
    from core.admin.widgets import JSONEditorWidget
  File "/home/circleci/project/core/admin/widgets.py", line 4, in <module>
    from django_json_widget.widgets import (
  File "/home/circleci/project/venv/lib/python3.6/site-packages/django_json_widget/widgets.py", line 8, in <module>
    class JSONEditorWidget(forms.Widget):
  File "/home/circleci/project/venv/lib/python3.6/site-packages/django_json_widget/widgets.py", line 9, in JSONEditorWidget
    class Media:
  File "/home/circleci/project/venv/lib/python3.6/site-packages/django_json_widget/widgets.py", line 10, in Media
    css = {'all': (static('dist/jsoneditor.min.css'), )}
  File "/home/circleci/project/venv/lib/python3.6/site-packages/django/templatetags/static.py", line 167, in static
    return StaticNode.handle_simple(path)
  File "/home/circleci/project/venv/lib/python3.6/site-packages/django/templatetags/static.py", line 118, in handle_simple
    return staticfiles_storage.url(path)
  File "/home/circleci/project/venv/lib/python3.6/site-packages/django/contrib/staticfiles/storage.py", line 153, in url
    return self._url(self.stored_name, name, force)
  File "/home/circleci/project/venv/lib/python3.6/site-packages/django/contrib/staticfiles/storage.py", line 132, in _url
    hashed_name = hashed_name_func(*args)
  File "/home/circleci/project/venv/lib/python3.6/site-packages/django/contrib/staticfiles/storage.py", line 420, in stored_name
    raise ValueError("Missing staticfiles manifest entry for '%s'" % clean_name)
ValueError: Missing staticfiles manifest entry for 'dist/jsoneditor.min.css'

Suspected

I believe the issue was introduced by 42b2c76. According to django documentation, Media class should use relative paths instead of resolving them with static().