Html 如何将模板插入到另一个模板中?
我有一个非常基本的模板(basic_template.html),我想用另一个部分模板格式化的数据来填充。basic_template.html可能包含几个使用部分模板格式化的内容 我应该如何在views.py中构造代码 我这样做的原因是,稍后将使用Ajax填充。我这样做对吗?您可以:Html 如何将模板插入到另一个模板中?,html,django,django-templates,Html,Django,Django Templates,我有一个非常基本的模板(basic_template.html),我想用另一个部分模板格式化的数据来填充。basic_template.html可能包含几个使用部分模板格式化的内容 我应该如何在views.py中构造代码 我这样做的原因是,稍后将使用Ajax填充。我这样做对吗?您可以: <div class="basic"> {% include "main/includes/subtemplate.html" %} </div> 您可以使用块执行此操作。块是D
<div class="basic">
{% include "main/includes/subtemplate.html" %}
</div>
您可以使用块执行此操作。块是Django模板标记,它将覆盖您扩展的模板的部分。我在下面提供了一个示例 basic_template.html
<body>
{% block 'body' %}
{% endblock %}
</body>
视图.py:
return render_to_response(template='example.html', context, context_instance)
这样做将加载basic_-template.html,但将basic_-template.html中{%block'正文'%}{%endblock%}
中{%block'正文'%}{%endblock%}中包含的所有内容替换为{%endblock%}
您可以在中阅读有关块和模板继承的更多信息,我只是想添加扩展和包含的差异。
模板和包含都可以使用当前应用中插入的模型。
模板供您的任何应用程序全局使用。“包含”用于某些应用程序。
例如:你想在你的主页和“关于”页面上插入图像滑块,但别无选择。为方便起见,您可以使用自己的模型创建Slider应用程序,并导入其模型并包含在该页面中。
如果您在本例中使用模板,您将创建两个模板,一个是带滑块的模板,另一个是其他模板的所有模板。主要有两种方法(两种简单的方法)
1:
在基本html中输入
{%include“myapp/sub.html”%}
只需在sub.html文件中编写html代码
2:
抱歉,忘了提一下:子模板可能会被实例化多次到基本模板中。HTMLH这也是可能的,您可以在模板的for循环中包含模板,请参阅更新的答案。在item循环中,我是否应该在子模板上下文中传递item,如{%include“includes/subtemplate.html”使用item=item%}
?@barraponto可以执行此操作,但子模板中已提供了item
。如果您希望保持子模板的上下文干净,那么可以使用{%include“includes/subtemplate.html”和item=item only%}
将item
从父模板传递到子模板。这应该添加到Django文档的某个地方!感谢您提供了有用的答案。这样做与{%include“main/includes/example.html”%}有什么区别?@MichaelLafayette,将extend视为继承,将include视为导入。使用一种方法比另一种方法有什么性能优势?{%include“main/includes/example.html”%}
方法看起来更简单(很简单)。
{% extends 'basic_template.html' %}
{% block 'body' %}
/* HTML goes here */
{% endblock %}
return render_to_response(template='example.html', context, context_instance)