我正在创建一个基于Django的Web应用程序,它是服务器端呈现的。但是现在有一些页面我想使用来自Feed的javascript重新渲染。
我更喜欢使用DRY方法并重新使用我现有的Django模板,将它们包含在标签内的页面上。
然后我可以使用我选择的模板库(有许多支持Django模板)
然而,我坚持最简单的事情,包括模板而不解析!以下是我尝试过的无效方法
预期输出
- John Doe
- Sally Taylor
- David Smith
{% for person in people %}
{{ person.name }}{% endfor %}
方法1 - 有效,但我必须重复两次相同的HTML
的index.html
{% include "includes/list.html" %}
{% include "includes/list.html" with script=1 %}
list.html
{% if script = 1 %}
{% verbatim %}
{% for person in people %}
{{ person.name }}{% endfor %}
{% endverbatim %}
{% else %}
{% for person in people %}
{{ person.name }}{% endfor %}
{% endif %}
方法2 - 到达循环后不输出
的index.html
{% include "includes/list.html" %}
{% include_raw "includes/list.html" %}
tags.py
from django import template
from django.template import loader, Context
register = template.Library()
@register.simple_tag
def include_raw(templatename):
return loader.get_template(templatename).render(Context())
非常感谢任何帮助!