码迷,mamicode.com
首页 > 其他好文 > 详细

Django自定义模板标签和过滤器

时间:2018-03-22 21:21:46      阅读:163      评论:0      收藏:0      [点我收藏+]

标签:def   .lib   reg   数据   使用   gsm   忘记   port   tags   

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传递给装饰器内的前端页面展示

参考资料:自定义标签

Django自定义模板标签和过滤器

标签:def   .lib   reg   数据   使用   gsm   忘记   port   tags   

原文地址:https://www.cnblogs.com/iyouyue/p/8626515.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!