georoot
georoot

Reputation: 3617

Unable to extend django template properly?

I have a base.html template which contains basic html definitions .The other templates are defined below

// pages/dashboard.html
{% extends 'base.html' %}

{% block body %}
    {% include 'components/nav.html' %}
    {% include 'components/dashboard.html' %}
{% endblock %}

// components/dashboard.html
<div class="page-container">
    <div class="main-page">
        {% block dashboard %}
        {% endblock %}
    </div>
</div>

// mailer/new.html
{% extends 'pages/dashboard.html' %}
{% block dashboard %}
    <h1>hello</h1>
{% endblock %}

The view renders mailer/new.html the problem is that the block containing <h1>hello</h1> is not working. Where am i going wrong with that ?

Upvotes: 0

Views: 58

Answers (1)

Daniel Roseman
Daniel Roseman

Reputation: 599610

{% include %} doesn't work that way. See the note in the documentation for that tag:

Blocks are evaluated before they are included. This means that a template that includes blocks from another will contain blocks that have already been evaluated and rendered - not blocks that can be overridden by, for example, an extending template.

Upvotes: 2

Related Questions