我有一个非常基本的模板(basic_template.html),并想用另一个部分模板格式化的数据来填写。basic_template.html 可能包含一些使用部分模板格式化的内容。
我应该如何构造views.py中的代码?
我这样做的原因是稍后将使用 Ajax 填充。我这样做对吗?
我有一个非常基本的模板(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 %}
视图.py:
return render_to_response(template='example.html', context, context_instance)
这样做将加载basic_template.html,但将 basic_template.html 中的所有内容替换为{% block 'body' %} {% endblock %}
.html 中包含的所有内容{% block 'body' %} {% endblock %}
。
您可以在Django Docs中阅读有关块和模板继承的更多信息
主要有2种方法(2种简单的)
1:
在基本 html 中放置 {% include "myapp/sub.html" %}
只需在 sub.html 文件中编写 html 代码
2:
https://docs.djangoproject.com/en/dev/ref/templates/language/#template-inheritance
我只是想添加扩展和包含的差异。模板和包含都可以使用当前应用程序中插入的模型。模板供您的任何应用程序在全球范围内使用。包括用于某些应用程序。例如:您想将图像滑块插入您的主页和关于页面,但没有其他地方。为方便起见,您可以使用自己的模型创建 Slider 应用程序,并导入其模型并包含在该页面中。如果您在此示例中使用模板,您将创建 2 个模板,其中一个带有滑块,其他模板具有其他所有模板。