亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

django 自定義模板過濾器

發布時間:2020-07-06 09:10:15 來源:網絡 閱讀:557 作者:justforid 欄目:開發技術

參考:http://www.cnblogs.com/qwj-sysu/p/4246605.html


做的頁面,一個tr里有兩個td, 1、3、5等奇數數據要放在第一個td, 2、4、6等偶數數據要放在第二個td, (如果已經沒有數據,td 內容要為空), 所以要根據取余數的結果來判斷; 但django的模板沒有取余操作,只好自定義一個

django的模板配置在:setting.py


TEMPLATES = [

    {

        'BACKEND': 'django.template.backends.django.DjangoTemplates',


一、后端

自定義標簽和過濾器必須依賴于一個django app,也就是說,自定義標簽和過濾器是綁定app的。該app應該包含一個templatetags目錄,這個目錄一個和model.py,views.py在同一個層級,記得在該目錄下建立一個__init__.py文件一遍django知道這是一個python包。在該目錄下,你可以新建一個python模塊文件,文件名不要和其他app中的沖突就好。例如:

promotions

    migrations

    templatetags

        __init__.py

        get_mod.py

    __init__.py

    models.py

    views.py


get_mod.py


    # -*- coding:utf-8 -*-


    from django import template

    register = template.Library()


    @register.filter

    def get_mod(arg1,arg2):

    return arg1%int(arg2)


自定義過濾器就是接受一個或者連個參數的python函數。例如{{var | foo:"bar"}},過濾器foo接受變量var和參數bar。

如果前端為

{{ forloop.counter|get_mod:"2" }}

則為get_mod(arg1,arg2)

如果前端為

{{ forloop.counter|get_mod }}

則為 get_mod(arg1)


二、前端


          <table class="ke-zeroborder" border="0" cellspacing="50" bordercolor="#000000" cellpadding="0" align="center">
             <tbody>
{#                因一行有兩列,所以根據取余數的結果來判斷是放在第一個td還是第二個td,如果余數是1,放在第一個td,如果是2,放在第二個td;如果已經沒有數據,td 內容要為空#}
               {% load get_mod %}
               {% for product in product_dict.ring %}

                 {% if forloop.counter|get_mod:"2" == 1  %}
                   <tr>
                       <td >
                         <p>
                           <a href="` products`.`4 `"><img alt="" src="/static/promotions/` product`.`0 `" /></a>
                         </p>
                         <p>
                           {{ forloop.counter|get_mod:"2" }}` product`.`1 `
                           <span >(</span><span >已鎖定</span><span >)</span>
                         </p>
                         <p class="MsoNormal">
                           ¥&nbsp;<span >` product`.`3 `</span>
                         </p>
                       </td>
                 {% elif empty %}
                       <td>
                           <p></p>
                       </td>
                       </tr>
                 {% else %}
                       <td >
                         <p>
                           <a href="` product`.`4 `"><img alt="" src="/static/promotions/` product`.`0 `" /></a>
                         </p>
                         <p>
                           ` product`.`1 `(<span >已鎖定</span>)
                         </p>
                         <p class="MsoNormal">
                           ¥&nbsp;<span >` product`.`3 `</span>
                         </p>
                       </td>
                   </tr>
                 {% endif %}
               {% endfor %}
           </tbody>
       </table>


注意:

{% load %}load的是模塊名,而不是app名

forloop

forloop.counter 表示循環的次數,它從1開始計數

forloop.counter0 表示循環的次數,它從0開始計數

forloop.revcounter表示循環中剩下的items數量,第一次循環時設為items總數,最后一次設為1

forloop.revcounter0類似于forloop.revcounter,但它是表示的數量少一個,即最后一次循環時設為0

forloop.first當第一次循環時值為True,在特別情況下很有用:

    {% for object in objects %}  

        {% if forloop.first %}<li class="first">{% else %}<li>{% endif %}  

            ` object `  

        </li>  

    {% endfor %}  

forloop.last當最后一次循環時值為True

    {% for link in links %}` link `{% if not forloop.last %} | {% endif %}{% endfor %}  

forloop.parentloop在嵌套循環中表示父循環的forloop:

    {% for country in countries %}  

        <table>  

        {% for city in country.city_list %}  

            <tr>  

                <td>Country #` forloop`.`parentloop`.`counter ` </td>  

                <td>City #` forloop`.`counter `</td>  

                <td>` city `</td>  

            </tr>  

        {% endfor %}  

        </table>  

    {% endfor %} 


向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

琼海市| 南召县| 沁源县| 涪陵区| 正蓝旗| 平陆县| 于田县| 和林格尔县| 安徽省| 无锡市| 永春县| 安泽县| 陇南市| 舟山市| 延长县| 莆田市| 大关县| 正安县| 呈贡县| 阳曲县| 恩平市| 镇安县| 宣威市| 盖州市| 乌兰察布市| 五指山市| 浏阳市| 海原县| 新平| 西华县| 商水县| 沙河市| 进贤县| 确山县| 达拉特旗| 和平区| 榆树市| 龙川县| 闽侯县| 阳城县| 江油市|