django模板扩展不工作

xggvc2p6  于 2023-01-10  发布在  Go
关注(0)|答案(4)|浏览(111)

这是我的博客

<!DOCTYPE html> 
<head> 
<title> My Site </title>
</head> 
<body>
<div id="wrapper">  
<!-- HEADER START -->
{% block nav %} {% endblock %}
{% block index %} {% endblock %}
</div> 
</body>
</html>

这是我的导航. 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 index %}
<p> hello </p>
{% endblock %}

我以前做过几次,但我不知道为什么这不起作用?url和视图是here.

vawmfj5a

vawmfj5a1#

一切都很好,麻烦的是你搞混了,仅仅在base中命名一个块并不能调用它,标记extends和include的区别,你混淆了extends和include。
一旦你在视图中调用了index.html,它就会被正确地呈现,你想要的效果可以通过把视图中的base.html改为index.html来达到。
希望这能有所帮助。更多内容可以在这里阅读:https://docs.djangoproject.com/en/dev/topics/templates/#template-inheritance

mv1qrgav

mv1qrgav2#

对于大多数最终使用{% extends 'something.html' %}的人(比如我自己),需要注意的是,当您使用{% extends 'something.html' %}时,除了顶层的这些模板标记之外,您不能使用任何其他标记。
很明显,你可以在这些标签里面放html标签(比如block标签),但是不要在模板标签外面放任何东西。

o0lyfsai

o0lyfsai3#

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

6ie5vjzr

6ie5vjzr4#

在 * views.py * 中,你必须调用一个模板来扩展另一个模板,而不是相反,在你的例子中,你应该调用nav.html。

相关问题