我正在創建一個基於Django的Web應用程序,它是服務器端呈現的。不過,現在有幾頁我想使用來自Feed的JavaScript重新呈現。Django包含html而不解析模板標籤
我寧願使用DRY方法並重新使用我現有的Django模板,將它們包含到標籤內的頁面上。
那麼我可以用我的選擇的模板庫(有很多支持Django模板)
- JinjaJS https://github.com/ericclemmons/jinja.js
- JinjaJS II https://github.com/sstur/jinja-js
- 痛飲http://paularmstrong.github.io/swig/
- 板https://github.com/chrisdickinson/plate
- TwigJS https://github.com/justjohn/twig.js
但是我卡在最簡單的東西,包括模板沒有解析!下面是我嘗試的方法不工作
預計輸出
<ul>
<li>John Doe</a></li>
<li>Sally Taylor</a></li>
<li>David Smith</a></li>
</ul>
<script type="text/template">
<ul>
{% for person in people %}
<li>{{ person.name }}</a></li>
{% endfor %}
</ul>
</script>
方法1部 - 作品,但我要重複相同的HTML兩次
的index.html
{% include "includes/list.html" %}
<script type="text/template">
{% include "includes/list.html" with script=1 %}
</script>
list.html
{% if script = 1 %}
{% verbatim %}
<ul>
{% for person in people %}
<li>{{ person.name }}</a></li>
{% endfor %}
</ul>
{% endverbatim %}
{% else %}
<ul>
{% for person in people %}
<li>{{ person.name }}</a></li>
{% endfor %}
</ul>
{% endif %}
方法2 - 不輸出達到了循環後
的index.html
{% include "includes/list.html" %}
<script type="text/template">
{% include_raw "includes/list.html" %}
</script>
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())
任何幫助將不勝感激!
'{%如果腳本= 1%}'應該是'{%如果腳本== 1%}' – karthikr
該方法工作正常,但這意味着我必須重複我的html兩次! –