你如何将模板插入到另一个模板?

我有一个非常基本的模板(basic_template.html),并希望使用另一个部分模板格式化数据。 basic_template.html可能包含几个使用部分模板格式化的东西。

我应该如何构造views.py中的代码?

我这样做的原因是以后会用Ajax填充。 我做对了吗?

你可以做:

<div class="basic"> {% include "main/includes/subtemplate.html" %} </div> 

其中subtemplate.html是另一个Django模板。 在这个subtemplate.html您可以放置​​使用Ajax获取的HTML。

您也可以多次包含模板:

 <div class="basic"> {% for item in items %} {% include "main/includes/subtemplate.html" %} {% endfor %} </div> 

你可以用来做到这一点 块是一个Django模板标签,它将覆盖您扩展的模板的各个部分 我在下面包含了一个例子。

basic_template.html

 <body> {% block 'body' %} {% endblock %} </body> 

你想要包含的模板:(即example.html)

 {% extends 'basic_template.html' %} {% block 'body' %} /* HTML goes here */ {% endblock %} 

views.py

 return render_to_response(template='example.html', context, context_instance) 

这样做会加载basic_template.html ,但将basic_template.html中{% block 'body' %} {% endblock %}中的所有内容replace为{% block 'body' %} {% endblock %}中包含的内容。

您可以在Django Docs中阅读关于块和模板inheritance的更多信息