我有一个非常基本的模板(basic_template.html),并希望使用使用另一部分模板格式化的数据来填写。basic_template.html可能包含使用部分模板格式化的几件事。
我应该如何在views.py中构建代码?
我这样做的原因是稍后将使用Ajax填充。我这样做对吗?
我有一个非常基本的模板(basic_template.html),并希望使用使用另一部分模板格式化的数据来填写。basic_template.html可能包含使用部分模板格式化的几件事。
我应该如何在views.py中构建代码?
我这样做的原因是稍后将使用Ajax填充。我这样做对吗?
Answers:
你可以做:
<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>
{% include "includes/subtemplate.html" with item=item %}
吗?
item
中已提供该功能。如果希望保持子模板的上下文整洁,则可以使用{% include "includes/subtemplate.html" with item=item only %}
来仅从item
父模板传递到子模板。
您可以使用块来执行此操作。块是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,但用中包含的内容替换{% block 'body' %} {% endblock %}
basic_template.html中的所有内容{% block 'body' %} {% endblock %}
。
您可以在Django Docs中阅读有关块和模板继承的更多信息
{% include "main/includes/example.html" %}
方法看起来更简单(它肯定了KISS)。
主要有2种方法(2种简单方法)
1:
在基本html中放{%包括“ myapp / sub.html”%}
只需在sub.html文件中编写html代码
2:
https://docs.djangoproject.com/zh-CN/dev/ref/templates/language/#template-inheritance