zoukankan      html  css  js  c++  java
  • Django自定义模板标签和过滤器

    inclusion_tag()

    在app中新建一个templatetags包(名字固定,不能变,只能是这个),
    和views.py、models.py等文件处于同一级别目录下。
    这是一个包!不要忘记创建__init__.py文件以使得该目录可以作为Python的包

    1.首先,编写Python函数,templatetags/my_tags.py

    from django import template
    
    register = template.Library()
    register = Library()
    # 调用Library对象的inclusion_tag()装饰器方法创建并注册Inclusion标签 
    @register.inclusion_tag("stark/form.html")     
    # 接收一个form参数 return数据给装饰器内的前端页面
    def get_form(form):                                        
        ...
        ...
        return {"form":form}
    

    2.接下来,创建用于标签渲染的模板stark/form.html

    <ul>
    {% for i in form%}
        <li> {{ i }} </li>
    {% endfor %}
    </ul>
    

    3.带数据模板的使用方法

    {% load my_tags %}
    ...
    {% get_form form %}
    

    流程:
    步骤3中的前端接收一个form 并将form传给前面的get_form作为参数
    函数运行完又生产一个form传递给装饰器内的前端页面展示

    参考资料:自定义标签

  • 相关阅读:
    CF1070F Debate
    P3502 [POI2010]CHO-Hamsters
    CF1421A XORwice
    P2073 送花
    树链剖分边权转化为点权
    球——数学分析,模型构建
    数位dp的模版
    不要62
    智慧题——规律题
    CF551C GukiZ hates Boxes——模拟加二分
  • 原文地址:https://www.cnblogs.com/iyouyue/p/8626515.html
Copyright © 2011-2022 走看看