一个和 jinja2 模板有关的问题:
我想创建一个可重用的模板来包含并覆盖块。宏不让我像参数一样容易地编写 HTML 块,对吧?比如说我想多次重用一个 include,在其中使用大量的 HTML 块,并且我希望能够动态分配。
我该怎么做呢?
我猜肯定不是用宏,我错了吗?
“你真正想要做什么?”
没错,就是我告诉过你的,我有一种为我的数据创建容器的方法。容器始终是相同的,但内容在每次使用时都是完全不同的。一次是表格,一次是 Bootstrap 组件,一次是表单。
周围的元素始终不变。
为了重现这个简单的错误,这是我所做的事情:
模板断言错误:块 'fullsection' 定义两次。
我想创建一个可重用的模板来包含并覆盖块。宏不让我像参数一样容易地编写 HTML 块,对吧?比如说我想多次重用一个 include,在其中使用大量的 HTML 块,并且我希望能够动态分配。
我该怎么做呢?
我猜肯定不是用宏,我错了吗?
{% render_foo('bar',2) %}
是可以的。
{% render_foo('<table><tr><th>something</th><th>somethingelse</th></tr><tbody><tr>....etc') %}
不再是可行的了。“你真正想要做什么?”
没错,就是我告诉过你的,我有一种为我的数据创建容器的方法。容器始终是相同的,但内容在每次使用时都是完全不同的。一次是表格,一次是 Bootstrap 组件,一次是表单。
周围的元素始终不变。
为了重现这个简单的错误,这是我所做的事情:
{% 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>
模板断言错误:块 'fullsection' 定义两次。