2017-09-06 41 views
0

我已成立以下模板Django的覆蓋部件中繼承模板

base.html文件

{% extends 'base/main_base.html' %} 

{% block main-content %} 
    <h1>Header stuff<h1> 
    ... 
    {% block article-content %} 
    {% endblock %} 

{% endblock %} 

article.html現在

{% extends 'base.html' %} 
{% block article-content %} 
    <h2>Content</h2> 
    <p>More content</p> 
{% endblock %} 

,我連接的圖到article.html,我想使用動態視圖數據來覆蓋'base.htm'中的'header stuff'我'模板。問題是,該視圖與從基礎繼承的article.html相關聯。

有沒有辦法從子模板覆蓋基礎模板的一部分?

回答

1

你可以在你的base.html文件

{% extends 'base/main_base.html' %} 

{% block main-content %} 
    <h1>{% block header %}Header stuff{% endblock %}<h1> 
    ... 
    {% block article-content %} 
    {% endblock %} 

{% endblock %} 

創建另一個template block並覆蓋塊在article.html

{% extends 'base.html' %} 

{% block header %}My overwritten headline{% endblock %} 

{% block article-content %} 
    <h2>Content</h2> 
    <p>More content</p> 
    ... 
{% endblock %} 
1

你也可以查看,在base.html文件,如果將「標題」值從文章(或任何其他視圖)注入到模板中:

base.html

{% extends 'base/main_base.html' %} 

{% block main-content %} 
    <h1> 
     {% if header %} 
      {{ header }} 
     {% else %} 
      Header stuff 
     {% endif %} 
    <h1> 
    ... 
    {% block article-content %} 
    {% endblock %} 

{% endblock %}