【问题标题】:How to for-loop three columns per row in Django/python?如何在Django / python中每行循环三列?
【发布时间】:2018-04-28 09:15:33
【问题描述】:

我想在我的 for 期间显示数据,每行三列。我希望我的结果如下所示:

<table>
<tr><td>VALUE1</td><td>VALUE2</td><td>VALUE3</td></tr>
<tr><td>VALUE4</td><<td>VALUE5</td><td>VALUE6</td></tr>
</table>

有人知道怎么做吗?

语法错误 /

处的 TemplateSyntaxError

“for”语句应使用“for x in y”格式:for i in range(0, len(all_products_list), 3)

【问题讨论】:

    标签: python django for-loop


    【解决方案1】:

    有一个divisibleby标签。

    所以你可以做一些(丑陋的)事情,比如:

    <table><tr>
    {% for field in form %}
       <td>{{ field }}</td>
       {% if forloop.last %}
         </tr>
       {% else %}
         {% if forloop.counter|divisibleby:"3" %}
           </tr><tr>
         {% endif %}
       {% endif %}
    {% endfor %}
    </table>
    

    或者,您可以为表单类提供一个 table_print 方法,该方法返回一个 html 字符串(包装在 mark_safe 中)。

    【讨论】:

    • 感谢回答,不过是模板标签,当然是从mysql中检索到的数据列表
    【解决方案2】:
    <table>
    {% for i in range(0, len(stuff), 3) %}
        <tr>
        {% for j in range(3) %}
            <td>{{ stuff[i+j] }}</td>
        {% endfor %}     
        </tr>
    {% endfor %}
    </table>
    

    抱歉,问题被误解了。

    【讨论】:

    • 感谢您这么快的回答,但语法错误?此方法在模板中不起作用?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-09-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多