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传递给装饰器内的前端页面展示
参考资料:自定义标签