best practice including javascript in django template

20,769

Solution 1

Use <script src="yourscript.js"></script> as usual, without the include template tag.

Django include template tag is not meant to load JavaScript source. It is used to include a sub template whose markup can access the template context of the including template. Read here.

Solution 2

I know this question is 6 years old, and the answer is an exact answer for the question. But somehow this came up for me so high in my google search results, I thought I would post additional info here, to help people like me, looking for best practice. Use template inheritance, and blocks for content, css and javascript.

Docs:

https://docs.djangoproject.com/en/2.0/ref/templates/language/#template-inheritance

and a stackoverflow example, showing how to add another js file to the original js block using block.super:

how to organize JS files in Django?

Share:
20,769
damon
Author by

damon

Updated on July 05, 2022

Comments

  • damon
    damon almost 2 years

    Previously I used to do like this in a template

    <html>
    ...
    <script>
     {% include "myapp/includes/jquery-1.7.1.min.js" %}
    {% include "myapp/includes/myscript.js" %}
    </script>
    ...
    

    But this causes all the js code to be shown on the page source.

    I am not using any Form in my template, so can I use Media class for adding js?

    Should I just use <script src=".." or link ref=".." for adding javascript files? Which is the better way?

  • fest
    fest about 12 years
    And, while you're at it, start using django_compressor django_compressor.readthedocs.org/en/latest/usage/#examples