Enu*_*nuy 1 django django-templates
假设我有一个简单的片段,我想在我的网站上重复(有时每页多次):
<div class="snippet-css">
<h1>{% block snippet-header %}{% endblock %}</h1>
<div class="snippet-content">
{% block snippet-content %}
{% endblock %}
</div>
<div class="snippet-footer">
{% block snippet-footer%}{% endblock %}
</div>
</div>
Run Code Online (Sandbox Code Playgroud)
我想在同一页面中多次包含此代码段,每次都用唯一的内容替换代码段标题、代码段内容和代码段页脚块。
定义一个接受这三个块作为参数的 django 标签对我来说不太好(HTML 代码锁定在 Django 标签内):
{% generate_snippet heading content footer %}
Run Code Online (Sandbox Code Playgroud)
我也找到了这篇博文
http://powertwenty.com/blog/index.php/python/repeating_sections_in_a_django_template
它通过将代码片段分成几个标签来解决问题。
使用 Django 模板实现此结果的最佳方法是什么?
您可以将值传递给 Django 的内置{% include %}模板标签,如下所示:
{% include "snippet.html" with header="blah" content="content" footer="lalala" %}
Run Code Online (Sandbox Code Playgroud)
您还可以传递变量:
{% include "snippet.html" with header=var1 content=var2 footer=var3 %}
Run Code Online (Sandbox Code Playgroud)
然后在snippet.html中:
<div class="snippet-css">
<h1>{{ header }}</h1>
<div class="snippet-content">
{{ content }}
</div>
<div class="snippet-footer">
{{ footer }}
</div>
</div>
Run Code Online (Sandbox Code Playgroud)
见https://docs.djangoproject.com/en/dev/ref/templates/builtins/#include
| 归档时间: |
|
| 查看次数: |
1134 次 |
| 最近记录: |