django模板扩展不工作
这是我的base.htmldjango模板扩展不工作,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> &
<!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中引用这个页面。相反,你必须引用包含你想要在该块中显示的代码的页面。