我有一个非常基本的模板(basic_template.html),并希望使用其他部分模板填充格式化的数据。 basic_template.html可能包含使用部分模板格式化的一些内容。
我应该如何构建views.py中的代码?
我这样做的原因是稍后将使用Ajax填充。我这样做了吗?
答案 0 :(得分:115)
你可以这样做:
<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>
答案 1 :(得分:19)
您可以使用块执行此操作。块是Django模板标记,它会覆盖您扩展的模板的各个部分。我在下面添加了一个示例。< / p>
<强> 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 %}
内的所有内容替换为{% block 'body' %} {% endblock %}
中包含的内容。
您可以在Django Docs
中阅读有关块和模板继承的更多信息答案 2 :(得分:0)
我只是想添加扩展和包含的区别。 模板和包含都可以使用当前应用程序中插入的模型。 模板可供您的任何应用程序全局使用。 Include用于某些应用程序。 例如:您想将Image Slider插入首页和关于页面,但无其他地方。为了方便起见,您可以使用自己的模型创建Slider应用,并导入其模型并将其包含在页面中。 如果在此示例中使用模板,则将创建2个模板,其中一个带有滑块,其他所有模板都具有。
答案 3 :(得分:0)
主要有2种方法(2种简单方法)
1:
以基本html格式放置 {%包括“ myapp / sub.html”%}
然后在您的sub.html文件中编写html代码
2:
https://docs.djangoproject.com/en/dev/ref/templates/language/#template-inheritance