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

参考资料:自定义标签

转载于:https://www.cnblogs.com/iyouyue/p/8626515.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值