你如何将模板插入到另一个模板?
我有一个非常基本的模板(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的更多信息