如何多次自定义和使用同一个 html 表格?

Posted

技术标签:

【中文标题】如何多次自定义和使用同一个 html 表格?【英文标题】:How can I customize and use the same html table multiple times? 【发布时间】:2018-08-05 11:14:46 【问题描述】:

在我的一个页面中,我有几张桌子。这些表格具有相同的结构,但颜色和显示的数据不同。

示例表可能如下所示:

<div class="container reusable-table">
    <h4 class="table_title"> table_title </h4>
    % for item in items %
        <div class="container row">
            <div class="container col">
                <h4> item.date </h4>
            </div>
            <div class="container col">
                <h4> item.time </h4>
            </div>
            <div class="container col">
                <h4> item.title </h4>
            </div>
            <div class="container col">
                <h4> item.description </h4>
            </div>
            <div class="container col">
                <h4> item.price </h4>
            </div>
        </div>
    % endfor %
</div>

我的选择之一是每次重复表格的 html 和 css 代码。这样我就冒着错误和大量重复代码的风险。

在我看来,我需要找到一种替代方法:

html 元素,例如table_title 数据相关元素,如% for item in items % 颜色

根据 cmets 和下面的答案,以及 Assign variables to child template in % include % tag Django,您可以将 html 元素和数据替换为以下内容:

% include "new_table.html" with table_title="A Title" and items=new_items %

剩下的是颜色方面,或者更好的说法是 css 方面。

我正在寻找一种方法来提高效率。

【问题讨论】:

includes 可能会帮助您做到这一点。所以你可以做类似% include 'my_table.html' with table_title='foo' items=some_items % @sytech 传递 table_title="foo" 工作正常。如果我的视图返回context["these_items"]context["other_items"],我不能传递items=other_items 之类的东西,以便在for 循环中使用。 我不确定你的意思。当您包含my_table.html 时,它可以使用当前上下文中的名称,或者您可以通过说with keyword=value 覆盖它们——您甚至可以通过使用only 关键字来阻止在完全呈现包含的模板时使用父上下文名称。因此,即使您有名称冲突或使用不同的名称,它也很灵活。如果您使用 include 尝试了一些特定的操作但不起作用,您可以用这些详细信息更新您的问题吗? 在包含的 html 文件中,您可以将 &lt;h4 class="table_title"&gt;Table Title&lt;/h4&gt; 替换为 &lt;h4 class="table_title"&gt; table_title &lt;/h4&gt; 并执行 % include 'my_table.html' with table_title='foo'。你将如何替换% for item in items %,你能做类似 % for item in items % 的事情吗?本质上,您如何在% include % 中传递items 以用变量替换? 你是对的,我在包含的 html 中有错误。 【参考方案1】:

您可以将您的表格设置为 html sn-p 模板,您可以将其包含在其他模板中以使此类事情易于管理。见the docs on include。

假设你有item_table.html

<div class="container reusable-table">
    <h4 class="table_title"> table_title </h4>
    % for item in items %
        <div class="container row">
            <div class="container col">
                <h4> item.date </h4>
            </div>
            <div class="container col">
                <h4> item.time </h4>
            </div>
            <div class="container col">
                <h4> item.title </h4>
            </div>
            <div class="container col">
                <h4> item.description </h4>
            </div>
            <div class="container col">
                <h4> item.price </h4>
            </div>
        </div>
    % endfor %
</div>

假设您有一个视图,它为模板提供项目列表,例如

# ...
return render('some_template.html', context=dict(some_items=something))

在您的some_template.html 中,您可以包含 item_table.html 并为其传递适当的值。例如,项目列表some_items 可以成为包含模板中的items 变量。

% include "item_table.html" with table_title="My Title" items=some_items %

【讨论】:

【参考方案2】:

您可以为表格创建一个 HTML 文件,使用 % include % 将 HTML 表格包含在任何您想要的位置

% include "mytable.html" with items=<your_items> %

试试这个...

【讨论】:

以上是关于如何多次自定义和使用同一个 html 表格?的主要内容,如果未能解决你的问题,请参考以下文章

为啥 Azure 将不同的 HTML 嵌入到自定义和内置策略的自定义 UI 注册表单中?

Swift - 自定义和默认 TableView 标题的混合

Git的自定义和特殊文件配置

如何自定义和重用DataGridColumnHeader样式?

OSSIM入门视频推出WebUI菜单自定义和汉化方法视频教程

在MJRefresh的基础上实现动画的自定义和自动下拉刷新