首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >只有在从数据库中找到内容时才显示div。

只有在从数据库中找到内容时才显示div。
EN

Stack Overflow用户
提问于 2016-01-07 12:38:23
回答 1查看 63关注 0票数 0

我想显示周围的HTML只有当内容是可用的。

例如,只有当user_data.xuser_data.y有值时,才会呈现下列HTML:

代码语言:javascript
复制
<div class="toggle toggle-primary" data-plugin-toggle="">
    <section class="toggle blue">
        <label>User data</label>
        <div class="toggle-content">
            <table>
                {% if user_data.x %}<tr>
                    <th>Data x</th>
                    <td>{{ user_data.x }}</td>
                    </tr>
                </tr>{% endif %}
                {% if user_data.y %}<tr>
                    <th>Data y</th>
                    <td>{{ user_data.y }}</td>
                    </tr>
                </tr>{% endif %}
            </table>
        </div>
     </section>
</div>

用Django做这件事最方便的方法是什么?

我正在显示来自多个数据库表的部分数据。因此,在整个if上创建一个大的HTML并不是一帆风顺的。

使用自定义标记来测试可用性和呈现内容将解决问题。但是,我发现这个解决方案令人震惊,因为它很困难,并且分散HTML,而这似乎是一个非常常见的问题。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-01-08 00:18:07

在你看来我可能会做这样的事

user_data.all = [user_data.x, user_data.y, ...]

user_data.any = any(user_data.all)

在模板中

{% if user_data.any %} {% for elem in user_data.all %} <tr> <th>{{ elem.title }}</th> <td>{{ elem.data }}</td> </tr> {% endfor %} {% endif %}

显然,只有当每个元素都是has.title和.data时,这才能起作用--但是您可以向每个现有模型添加一个属性以生成该数据。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34655342

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档