dastergon dastergon - 1 month ago 11
Python Question

Why load staticfiles for every template even if it is extendend?

I have a base.html file which has some 'random' html code and I have the following code:

{% load staticfiles %}
<!DOCTYPE html>
<html>
<head>
...
{% block extra_js_top %}{% endblock %}
</head>
...
</html>


In my index.html file I extend base.html and I load some extra javascript files:

{% extends "base.html" %}
...
{% block extra_js_top %}
<script type="text/javascript" src="{% static "js/somejs.js" %}"></script>
{% endblock %}


The problem is that extra javascript doesn't load because of the static var. It doesn't load even if I extend base.html which have the
{% load staticfiles %}
inside the template. Finally I solved the problem adding one more
{% load staticfiles %}
at index.html.

My question is why we should add
{% load staticfiles %}
for every template we use even if we extend a file that has it already?

Answer

Template inheritance allows you to build a base "skeleton" template that contains all the common elements of your site and defines blocks that child templates can override.

For the more information, Template inheritance

Comments