damon
damon

Reputation: 8477

best practice including javascript in django template

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?

Upvotes: 7

Views: 22006

Answers (2)

excyberlabber
excyberlabber

Reputation: 649

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?

Upvotes: 5

Joseph Victor Zammit
Joseph Victor Zammit

Reputation: 15310

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.

Upvotes: 17

Related Questions