【发布时间】:2017-07-15 00:00:23
【问题描述】:
jinja2 模板的一个小问题: 我想创建一个可重用的模板来包含然后覆盖块。宏不会让我轻松编写 HTML 的垃圾作为参数,是吗?假设我想多次重用包含,并且在我想动态分配的块中使用大量 HTML 垃圾 我该怎么做?
我猜肯定不是宏,还是我错了?
{% render_foo('bar',2) %} 很好
{% render_foo('<table><tr><th>something</th><th>somethingelse</th></tr><tbody><tr>....etc') %} 已经不行了是不是
“你真正想做什么?”
是的,我告诉过你,我有一种方法可以为我的数据创建容器。容器总是一样的。每种用法的内容完全不同。一次一桌。曾经是一个引导组件。一次表格。
周围的元素总是一样的
为了重现这个简单的错误,我就是这样做的:
{% include 'full_section.html' %}
{% block fullsection %} <table><tr><th>something</th><th>somethingelse</th></tr><tbody><tr>....etc{% endblock %}
{% include 'full_section.html' %}
{% block fullsection %} <form>//some cool LONG big form </form>{% endblock %}
full_section.html 内容只是为了完整性,实际上要复杂得多
<div class="my_cool_full_section">
{% block full_section %}{% endblock %}
</div>
TemplateAssertionError: block 'fullsection' 定义了两次
【问题讨论】: