久久无码中文字幕_日韩精品无码一本二本三_久久精品呦女暗网_欧美一级夜夜爽_久久精品国产99久久99久久久

18
2020/07

Django模板語(yǔ)法中for循環(huán)中怎么使用變量值作為其他字典的鍵值

發(fā)布時(shí)間:2020-07-18 17:16:47
發(fā)布者:神棍子
瀏覽量:
0

該問(wèn)題在正常python中并不存在,但是在django模板語(yǔ)法中字典中的鍵名是無(wú)法用變量來(lái)調(diào)取的,所以只能用自定義tag和自定義變量來(lái)解決該問(wèn)題。

比如有兩個(gè)變量a=["26", "27"],b={"26": ["/static/upload/20200717/1594954536.jpg", "/static/upload/20200717/1594954540.png"],"27":["/static/upload/20200717/1594954545.jpg"]},這時(shí)想要根據(jù)循環(huán)a的值來(lái)當(dāng)做b的索引然后在循環(huán)出內(nèi)部的數(shù)據(jù)。

    Python中正常寫(xiě)法:

        for I in a:

            for x in b[i]:

                print(x)

這樣便能夠輸出b中每一條記錄,但是django中模板中不支持任何寫(xiě)法的b[i]

解決方法為:

{% for i in a%}

            {% with photo=b|get_obj:i %}#定義一個(gè)變量phtot  自定義標(biāo)簽get_boj 獲取b對(duì)象中的i

                {% for x in photo %}

                      {{x}}

                 {% endfor %}

             {% endwith %}

    {% endfor %}

Templatetags中的自定義變量

    @register.filter

    def get_obj(list,key):

        # return len(list)

        return list.get(key)

這樣便可以解決剛才輸出的問(wèn)題,具體django模板語(yǔ)法請(qǐng)參考文章:django使用中遇到的小問(wèn)題以及解決方案

timg (2).jpg


關(guān)鍵詞:
返回列表