Django如果模板中的表为空则显示其他内容

时间:2019-06-14 20:35:19

标签: django templates

如果表为空,我想知道如何显示“当前没有可用数据”之类的消息

<table>
    <thead>
        <tr style="font-size: small">
            <th>Ranking</th>
            <th>Symbol</th>
            <th>Name</th>
            <th>Price</th>
            <th>Market Cap (USD)</th>
        </tr>
    </thead>
    <tbody>
    {% for price in price %}
        <tr style="font-size: small">
            <td>{{ price.rank }}</td>
            <td>{{ price.symbol }}</td>
            <td>{{ price.key|title }}</td>
            <td>{{ price.value|intcomma }} $</td>
            <td>{{ price.market_cap_usd|intcomma }} $</td>
        </tr>
        {% endfor %}
    </tbody>
</table>

感谢和Br

1 个答案:

答案 0 :(得分:1)

Django模板为此具有for ... empty [Django-doc]模式。您可以编写{% for var in collection %} ... {% empty %} ... {% endfor %}。如果集合不为空,则它将执行迭代,并为集合中的每个项目渲染主体。如果集合为空,则它将在{% empty %}{% endfor %}之间呈现Bart。

例如:

<table>
    <thead>
        <tr style="font-size: small">
            <th>Ranking</th>
            <th>Symbol</th>
            <th>Name</th>
            <th>Price</th>
            <th>Market Cap (USD)</th>
        </tr>
    </thead>
    <tbody>
    {% for price in price %}
        <tr style="font-size: small">
            <td>{{ price.rank }}</td>
            <td>{{ price.symbol }}</td>
            <td>{{ price.key|title }}</td>
            <td>{{ price.value|intcomma }} $</td>
            <td>{{ price.market_cap_usd|intcomma }} $</td>
        </tr>
    {% empty %}
        <tr><td colspan="5">Currently no Data Available</td></tr>
    {% endfor %}
    </tbody>
</table>

如果集合为空,则呈现{% empty %}部分。

  

注意:请将您的集合重命名为prices,因此{% for price in prices %}现在覆盖了模板变量,此外prices更清楚了它的含义包含。