亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何在Django模板中每個循環渲染3個元素?

如何在Django模板中每個循環渲染3個元素?

江戶川亂折騰 2021-05-21 14:15:11
我不知道如何表達自己的需求。我只顯示代碼。data_lis = [1,2,3,4,5,6,7,8,9]如何將此列表分為N三個部分,每個部分有3個元素?我這樣做是為了渲染<div class="card-group d-block d-md-flex u-card--gutters-2-md"><div class="card border-0 rounded shadow-sm mb-3 transition-3d-hover">element</div><div class="card border-0 rounded shadow-sm mb-3 transition-3d-hover">element</div><div class="card border-0 rounded shadow-sm mb-3 transition-3d-hover">element</div></div>我需要像上述樣式一樣渲染數據,但是如何動態更改渲染方式?我的解決方案a = [   [3,2,3],   [3,4,2],   [3,2]]我只是將它手工分成N三個部分,每個部分都有3個元素!
查看完整描述

2 回答

?
萬千封印

TA貢獻1891條經驗 獲得超3個贊

您可以使用語法Rakesh說


data_list = [data_list[i:min(i+3, len(data_list)] for i in xrange(0, len(data_list_, 3)]

您也可以像這樣在模板中更改語法


{% for i in a %}

    {% if forloop.counter0|divisibleby:3 %}

    <div class="card-group d-block d-md-flex u-card--gutters-2-md">

    {% endif %}

        <div class="card border-0 rounded shadow-sm mb-3 transition-3d-hover">

             {{ k }} 

        </div>        

    {% if forloop.counter0|add:2|divisibleby:3 %}

    </div>

    {% endif %}

{% endfor %}

{% ifequal a|length|divisibleby:3 False %}

    </div>

{% endifnotequal %}

在這里,您不想將內容拆分為列表列表。


查看完整回答
反對 回復 2021-05-25
?
PIPIONE

TA貢獻1829條經驗 獲得超9個贊

如果我理解正確,則需要模板語法。


嘗試:


{% for i in a %}

    <div class="card-group d-block d-md-flex u-card--gutters-2-md">

    {% for k in i %}        

            <div class="card border-0 rounded shadow-sm mb-3 transition-3d-hover">{{ k }}</div>        

    {% endfor %}

    </div>

{% endfor %}

要將列表劃分為N個塊,請使用。


data_lis = [1,2,3,4,5,6,7,8,9]

N = 3

a =  [data_lis[i:i+N] for i in range(0, len(data_lis), N)] 

print(a)

輸出:


[[1, 2, 3], [4, 5, 6], [7, 8, 9]]


查看完整回答
反對 回復 2021-05-25
  • 2 回答
  • 0 關注
  • 238 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號