如何多次自定义和使用相同的html表?

时间:2018-02-26 03:29:58

标签: html django

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

示例表可能如下所示:

<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 %}
  • 颜色

根据下面的评论和答案,也可以在Assign variables to child template in {% include %} tag Django上,您可以使用以下内容替换html元素和数据:

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

这留下了颜色方面,或更好地说明了css方面。

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

2 个答案:

答案 0 :(得分:2)

您可以为表创建一个HTML文件,并在{%include%}

中包含HTML表格
{% include "mytable.html" with items=<your_items> %}

试试这个......

答案 1 :(得分:0)

您可以将表格设为一个html代码段模板,您可以将其包含在其他模板中,以使此类内容易于管理。请参阅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 %}