oldbee0925 2022-01-04 10:13 采纳率: 91.4%
浏览 70
已结题

django里面利用forloop.counter和divisibleby解决表格样式循环变化的问题。

我希望利用网站模板中现成的颜色循环变化表格样式,下图:

img


模板最初的html是这样的,有5种样式可供循环:

<tr class='A'>    ..... </tr>
 <tr class='B'>  ..... </tr>
 <tr class='C'>   ..... </tr>
 <tr class='D'>   ..... </tr>
 <tr class='E'>   ..... </tr>

我的思路:
1、在view中,将5个样式以字典方式带入到html中:

 G_view_class={0:"A",1:"B",2:"C",3:"D",4:"E"}

2、在html里,我首先做了以下尝试:结合forloop.counter计数器,对数值5求余数(%),然后调用dict的对应key,根本行不通。

    {% for data in G_view.data %}
                <tr class="{{G_view_class[{{forloop.counter}}%5]}}"> #这里用python语法求余数,然后调用dict的对应key,根本行不通。
                                                        <td>{{data.1}}</td>
                                                        <td>{{data.2}}</td>
                                                        <td>{{data.3}}</td>
                                                        <td>{{data.4}}</td>
                                                        <td>{{data.5}}</td>
                </tr>
    {% endfor %}

此方法行不通,好像django的语法跟python不是一个序列,不能直接加减乘除
然后查阅资料,需要这样来做:
{% if forloop.counter0|divisibleby:2 %}
不停地if判断 ,这样倒是行了,可效率没了。帮支支招?如何做更简单一些?

  • 写回答

3条回答 默认 最新

  • 陈年椰子 2022-01-04 11:34
    关注

    改下 data 的处理,

    class_lst = ['A','B','C','D','E']
    ci = 0
    data_temp = dict_G_view['data']
    for i in range(len(data_temp)):
        data_temp[i].append(class_lst[i % len(class_lst)])
    
    dict_G_view['data'] = data_temp 
    
    

    改下模板

    HTML

    
    {% for data in G_view.data %}
                    <tr class="{{data.6]}}"> 
                                                            <td>{{data.1}}</td>
                                                            <td>{{data.2}}</td>
                                                            <td>{{data.3}}</td>
                                                            <td>{{data.4}}</td>
                                                            <td>{{data.5}}</td>
                    </tr>
        {% endfor %}
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 1月12日
  • 已采纳回答 1月4日
  • 创建了问题 1月4日

悬赏问题

  • ¥100 set_link_state
  • ¥15 虚幻5 UE美术毛发渲染
  • ¥15 CVRP 图论 物流运输优化
  • ¥15 Tableau online 嵌入ppt失败
  • ¥100 支付宝网页转账系统不识别账号
  • ¥15 基于单片机的靶位控制系统
  • ¥15 真我手机蓝牙传输进度消息被关闭了,怎么打开?(关键词-消息通知)
  • ¥15 装 pytorch 的时候出了好多问题,遇到这种情况怎么处理?
  • ¥20 IOS游览器某宝手机网页版自动立即购买JavaScript脚本
  • ¥15 手机接入宽带网线,如何释放宽带全部速度