python-django-js-asset
Port variant v13
Summary Django forms.Media script tag (3.13)
Package version 3.0.1
Homepage https://github.com/matthiask/django-js-asset/
Keywords python
Maintainer Python Automaton
License Not yet specified
Other variants v12
Ravenports Buildsheet | History
Ravensource Port Directory | History
Last modified 20 DEC 2024, 22:31:26 UTC
Port created 02 FEB 2018, 15:29:04 UTC
Subpackage Descriptions
single =============================================================================== django-js-asset -- script tag with additional attributes for django.forms.Media =============================================================================== Usage ===== Use this to insert a script tag via ``forms.Media`` containing additional attributes (such as id and ``data-*`` for CSP-compatible data injection.): .. code-block:: python from js_asset import JS forms.Media(js=[ JS("asset.js", { "id": "asset-script", "data-answer": "42", }), ]) The rendered media tag (via ``{{ media.js }} or {{ media }}`` will now contain a script tag as follows, without line breaks: .. code-block:: html The attributes are automatically escaped. The data attributes may now be accessed inside ``asset.js``: .. code-block:: javascript var answer = document.querySelector("#asset-script").dataset.answer; Also, because the implementation of static differs between supported Django versions (older do not take the presence of ``django.contrib.staticfiles in INSTALLED_APPS`` into account), a ``js_asset.static`` function is provided which does the right thing automatically. CSS and JSON support ==================== Since 3.0 django-js-asset also ships a CSS and JSON media object which can be used to ship stylesheets, inline styles and JSON blobs to the frontend. It's recommended to pass those through ``forms.Media(js=[]) as well since js is a simple list while css`` uses a dictionary keyed with the media to use for the stylesheet. So, you can add everything at once: .. code-block:: python from js_asset import CSS, JS, JSON forms.Media(js=[ JSON({"configuration": 42}, id="widget-configuration"), CSS("widget/style.css"), CSS("p{color:red;}", inline=True), JS("widget/script.js", {"type": "module"}), ]) This produces: .. code-block:: html Compatibility ============= At the time of writing this app is compatible with Django 4.2 and better (up to and including the Django main branch), but have a look at the [tox configuration ] for definitive answers.
Configuration Switches (platform-specific settings discarded)
PY312 OFF Build using Python 3.12 PY313 ON Build using Python 3.13
Package Dependencies by Type
Build (only) python313:dev:std
python-pip:single:v13
autoselect-python:single:std
Build and Runtime python313:primary:std
Runtime (only) python-Django:single:v13
Download groups
main mirror://PYPIWHL/61/d1/be003d14c880c100d8713b2ca0a286728e6e8b47e50d25e2fab31adc9632
Distribution File Information
0b7ee73c45ca65cccbcc2f60cbe8fbc87ff133b543c282cb64fe6c13d7ca4c10 4283 python-src/django_js_asset-3.0.1-py3-none-any.whl
Ports that require python-django-js-asset:v13
python-django-mptt:v13 Django Modified Preorder Tree Traversal (3.13)