在Django中从父项的父项继承模板块

时间:2019-09-23 13:46:32

标签: python django django-templates

我有3个模板文件,分别名为**base.html****navbar.html****dashboard.html**

base.html是具有**{% block content %}**的主要父文件。

导航栏具有**{% block navtitle %}**

现在我想做的是,我想在**navtitle**文件中'dashboard.html'块。

navbar.htmldashboard.html都扩展了**base.html**。我可以从**content**文件中获取base.html块,但不能获取 navbar 块。

请指导我该怎么做

以下示例文件

base.html

    {% block content %} {% endblock %}

navbar.html

    {% extends 'base.html' %}
    {% block navtitle %} {% endblock %}

dashboard.html

    {% extends 'base.html' %}
    {% block content %} Demo {% endblock %}          # Able to print it
    {% block navtitle %} Demo 2 {% endblock %}       # Not able to print it

我还尝试将navbar.html文件扩展到dashboard.html文件中,但还是没有运气。

1 个答案:

答案 0 :(得分:0)

使用继承(1/2)

base.html

{% block content %} {% endblock %}
{% block navtitle %} {% endblock %}

dashboard.html

{% extends 'base.html' %}
{% block content %} Demo {% endblock %}
{% block navtitle %} Demo 2 {% endblock %}

使用继承(2/2)

在某些模板仅从base.html继承而其他模板从navbar.html

继承时很有用

base.html

{% block content %} {% endblock %}
{% block navtitle %} {% endblock %}

navbar.html

{% extends 'base.html' %}
{% block navtitle %} {% endblock %}

dashboard.html

{% extends 'navbar.html' %}
{% block content %} Demo {% endblock %}
{% block navtitle %} Demo 2 {% endblock %}

使用包含

base.html

{% block content %} {% endblock %}
{% include "path/to/navbar.html" %}

navbar.html

<div>Some html</div>

dashboard.html

{% extends 'base.html' %}
{% block content %} Demo {% endblock %}
{% block navtitle %} Demo 2 {% endblock %}

结帐django的includeinheritance的模板文档