Skip to main content

script tag with additional attributes for django.forms.Media

Project description

https://travis-ci.org/matthiask/django-js-asset.svg?branch=master

Usage

Use this to insert a script tag via forms.Media containing additional attributes (such as id and data-* for CSP-compatible data injection.):

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:

<script type="text/javascript" src="/static/asset.js"
    data-answer="42" id="asset-script"></script>

The attributes are automatically escaped. The data attributes may now be accessed inside asset.js:

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.

When adding external script assets, you should pass static=False to the JS object to avoid passing the script URL through static(). In this case, you probably want to add defer or async, and maybe also integrity and crossorigin attributes. Please note that boolean attributes are not properly supported, so specify them as follows:

JS(
    "https://cdn.example.com/script.js",
    {"defer": "defer"},
    static=False,
)

Compatibility

At the time of writing this app is compatible with Django 1.7 and better (up to and including the Django master branch), but have a look at the Travis CI build for definitive answers.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

django-js-asset-1.2.1.tar.gz (4.4 kB view details)

Uploaded Source

Built Distribution

django_js_asset-1.2.1-py2.py3-none-any.whl (5.8 kB view details)

Uploaded Python 2 Python 3

File details

Details for the file django-js-asset-1.2.1.tar.gz.

File metadata

  • Download URL: django-js-asset-1.2.1.tar.gz
  • Upload date:
  • Size: 4.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.12.1 pkginfo/1.5.0.1 requests/2.21.0 setuptools/40.7.3 requests-toolbelt/0.9.1 tqdm/4.30.0 CPython/3.6.7

File hashes

Hashes for django-js-asset-1.2.1.tar.gz
Algorithm Hash digest
SHA256 33684c322db4fdec7cbd854fa8af527a9d2a4ef302c11263c18a9e19b3c4bd24
MD5 eda4027b8fc92099bc39a91076be00e1
BLAKE2b-256 cc11b56a29fa04d6f2a7611da06225949d437bdf8ad56d948be0f3affa899c38

See more details on using hashes here.

File details

Details for the file django_js_asset-1.2.1-py2.py3-none-any.whl.

File metadata

  • Download URL: django_js_asset-1.2.1-py2.py3-none-any.whl
  • Upload date:
  • Size: 5.8 kB
  • Tags: Python 2, Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.12.1 pkginfo/1.5.0.1 requests/2.21.0 setuptools/40.7.3 requests-toolbelt/0.9.1 tqdm/4.30.0 CPython/3.6.7

File hashes

Hashes for django_js_asset-1.2.1-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 613e177fc6946497ed5ab09de95e3152d66264dbdcccc680ae3830e75b347184
MD5 7d62eb804283a5388a4efcf5a5343cd4
BLAKE2b-256 92399bd7945cff101cee2dcdb380d1c6f66447191c2aeb3bf0fb60a6ab96386f

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page