django模板扩展不起作用

use*_*563 11 django django-templates django-urls django-views

这是我的base.html

<!DOCTYPE html> 
<head> 
<title> My Site </title>
</head> 
<body>
<div id="wrapper">  
<!-- HEADER START -->
{% block nav %} {% endblock %}
{% block index %} {% endblock %}
</div> 
</body>
</html>
Run Code Online (Sandbox Code Playgroud)

这是我的nav.html

{% extends "base.html" %}
{% block nav %}
<div id="header"> 
<div class="inner">

<div class="nav"> 
<ul> 
<li class="current"><a href="index.html">Home</a></li> 
<li><a href="about.html">About</a></li> 
<li><a href="blog_right.html">Blog</a></li>                        
<li><a href="contact.html">Contact</a></li> 
</ul>                     
</div>  
<div class="clear"></div>           
</div><!-- .inner end --> 
</div><!-- #header end --> 
<!-- HEADER END -->
{% endblock %}
Run Code Online (Sandbox Code Playgroud)

这是我的index.html

{% extends "base.html" %}
{% block index %}
<p> hello </p>
{% endblock %}
Run Code Online (Sandbox Code Playgroud)

我之前已经做了好几次但我对于为什么这不起作用一无所知?网址和观点都在这里.

wha*_*atf 13

一切都很好,你遇到的麻烦是你很困惑,只是在基地命名一个块不会调用它.标记extends和include之间的区别.你有反对意见延伸到包括.

一旦进入您的视图,如果您调用say index.html,它将被正确呈现.您可以通过将视图中的base.html更改为index.html来实现所需的效果.

希望这可以帮助.更多内容可以在这里阅读:https://docs.djangoproject.com/en/dev/topics/templates/#template-inheritance

  • 《纪元2019》你的答案依然飞扬!添加到您非常清楚的解释:如果您在页面上使用 {% block something %} {% endblock something %},您应该**不要**在 views.py 中引用此页面。相反,您必须引用具有要在该块中显示的代码的页面。 (2认同)