【发布时间】:2020-12-12 09:38:09
【问题描述】:
考虑下面的代码:
<table id='table1'>
{% if model_name == 'TransactionsTable' %}
{% block transactions_create %}
{% include "snippets/transactions_create_and_update.html" with form=form %}
{% endblock transactions_create %}
{% endif %}
</table>
我在transactions_create_and_update.html 中有另一个<table>,“table2”。
<table id=table2>abc</table>
Table2 出现在其父元素之外。见下图 - table2 应该在 table1 内
所以经过一些测试后,我尝试提前关闭 table1(第一行):
<table id='table1'></table>
{% if model_name == 'TransactionsTable' %}
{% block transactions_create %}
{% include "snippets/transactions_create_and_update.html" with form=form %}
{% endblock transactions_create %}
{% endif %}
然后就是这个样子
我真的不明白这两种情况发生了什么。
From the docs - 认为这是答案的一部分,但我不知道该怎么办:
include 标签应该被认为是“render 这个子模板并包含 HTML”,而不是“解析这个子模板” 并包含其内容,就好像它是父级的一部分一样”。这意味着 包含的模板之间没有共享状态——每个 include 是一个完全独立的渲染进程。
块在被包含之前被评估。这意味着一个 包含来自另一个块的模板将包含以下块 已经被评估和渲染 - 不是可以被 例如,被扩展模板覆盖。
【问题讨论】:
-
HTML问题,table标签的children应该是th或者tr等,不直接包含纯文本
标签: python html django django-templates