django模板扩展不工作

django模板扩展不工作,django,django-templates,django-views,django-urls,Django,Django Templates,Django Views,Django Urls,这是我的base.html <!DOCTYPE html> <head> <title> My Site </title> </head> <body> <div id="wrapper"> <!-- HEADER START --> {% block nav %} {% endblock %} {% block index %} {% endblock %} </div> &

这是我的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>

我的网站
{%block nav%}{%endblock%}
{%block index%}{%endblock%}
这是我的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 %}
{%extends“base.html”%}
{%block nav%}
{%endblock%}
这是我的index.html

{% extends "base.html" %}
{% block index %}
<p> hello </p>
{% endblock %}
{%extends“base.html”%}
{%block index%}
你好

{%endblock%}
我以前做过好几次,但我不知道为什么这不起作用?
URL和视图都是

嗯,一切都很好,您遇到的问题是 您很困惑,仅仅在base中命名一个块并不能调用它。 标记扩展和包含之间的差异。 你必须把它包括在内

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


希望这有帮助。更多信息可以在这里阅读:

对于更多最终来到这里的人(作为我自己),需要注意的主要问题是,当您使用
{%extensions'something.html%}
时,除了这些顶级模板标记之外,您不能使用任何其他内容


显然,您可以在这些标记中包含html标记(如块标记),但不要将任何内容放在模板标记之外。

如果您在extends中更改路径,例如{%extends'mysite/index.html%},也会有所帮助。视图函数必须使用扩展名而不是基本扩展名来呈现文件。

有什么问题?“它不起作用”不是很有帮助。谢谢,它真的很有帮助。是的,我会记住。。。愚蠢的我:(Anno 2019)你的答案仍然很快!为了补充你非常清楚的解释:如果你在一个页面上使用{%block something%}{%endblock something%},你不应该在views.py中引用这个页面。相反,你必须引用包含你想要在该块中显示的代码的页面。