如何在Django / python中每行循环三列?

Posted

技术标签:

【中文标题】如何在Django / python中每行循环三列?【英文标题】:How to for-loop three columns per row in 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)

【问题讨论】:

【参考方案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>

抱歉,问题被误解了。

【讨论】:

感谢您这么快的回答,但语法错误?此方法在模板中不起作用?

以上是关于如何在Django / python中每行循环三列?的主要内容,如果未能解决你的问题,请参考以下文章

解析文本文件的不同行的有效方法

python如何根据csv中一列的内容对另一列进行写入

我可以获取数据框三列的斜率并使用 python 中的值创建一个新列吗?

如何在模板中迭代 python-django 循环 N 次?

python中for循环怎么从1到4每行递增

如何使用groupby避免python中的循环