我有一些html结构可以在很多不同的地方重复使用。它与整体模板不同,所以我不能扩展它,它也可以用来包含复杂的内容,所以我不认为将它定义为模板标签是一件好事。以下是一些伪代码,描述了我的期望结果,当使用template_level2.html时,您可以通过调用其中的块来轻松地将内容放入reusable_pattern_template中。如果我确实使用了这个代码,那么您在template_level_2.html的“实际内容”中编写的内容就不会显示出来。我应该如何处理这个问题?django:在包含的模板中使用块
base.html文件
<html>
<head></head>
<body>
{% block content %}{% endblock %}
</body>
</html>
template_level1.html
{% extends 'base.html' %}
{% block content %}
Something here...
{% include 'reusable_pattern_template.html' %}
Something else here...
{% endblock %}
reusable_pattern_template.html
<div>
<div>
<div>
{% block local_content %}{% endblock %}
</div>
</div>
</div>
template_level2.html
{% extends 'template_level1.html' %}
{% block local_content %}
Actual content here...
{% endblock %}
更新: 抱歉,在template_level2.html延伸有一些拼写错误,我只是纠正它。
它可能不是很清楚,但上面的代码中更多的是描述我所希望的结果的伪代码。总之,
- 我想在我的 模板中包括可重复使用的html模式的小块。
- 这些图案就像是盒子,您可以将整个HTML 内容放入其中。所以上下文变量可能有点太有限 我的目的
似乎永远不会调用'template_level2.html'。如果你包含了一些代码块,你不需要使用'block'语句,因为你将包括什么时候以及你想要什么 – 2012-03-09 12:13:41
嗨fastreload! 'template_level2.html'是模板的最终级别,所以它不被包含/扩展到任何地方。通过调用'template_level2.html'中的'{%block%}'语句,我打算将内容放入''template_level2.html'中使用的'reusable_pattern_template.html'中。 – 2012-03-09 12:49:58
问题:为什么不使用django-generic-flatblocks?这是一个很棒的应用程序,它提供了一个很棒的模式 – jpic 2012-03-09 13:33:34