美文网首页
6. 自定义过滤器

6. 自定义过滤器

作者: 何大炮 | 来源:发表于2018-05-14 19:08 被阅读0次

    问题

    之前想要在模板里,从字典里取出值然后展示。但是发现没有相关的语法,只有将key 和value同时遍历的方法。于是自定义过滤器进入了视野。

    <div class="card-columns" style="margin: 1%">
                {% for label in labels %}
                <div class="card bg-light">
                    <p><strong>{{ label }}</strong></p>
                    <div class="card-body text-center">
                        {% for record in collections|dic_value:label %}
                        <a href = '{{ record.title_link }}'><p class="card-text">{{ record.item_title }}</p></a>
                        {% endfor %}
                    </div>
                </div>
                {% endfor %}
            </div>
    

    语法:{{ 变量|function:参数 }}

    变量有一个,参数最多一个,function就是我们自己定义的python函数。
    Django里面自带了一些内置的过滤器:
    {{value | add : "2"}} ——> 返回值为 value+2
    {{value |upper}} ——> 返回值为value的大写形式

    流程

    1. 在app中建立一个包templatetags(不可变的名字)
    2. 建立一个‘名字.py’,名字可以随便取。这里假定filter


    3. 编写这个.py
    from django import template
    #创建一个库对象
    register = template.Library()
    # 利用装饰器赋予这个函数过滤器的功能
    @register.filter
    # 自定义这个函数,其功能就是我们想要的过滤器功能。
    def dic_value(dic, key):
        return dic[key]
    
    1. 在对应的html里最上面加上{% load filter %},这样这个过滤器就可以使用了。

    相关文章

      网友评论

          本文标题:6. 自定义过滤器

          本文链接:https://www.haomeiwen.com/subject/rfoilftx.html