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

Posted 拜悦神教

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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传递给装饰器内的前端页面展示

参考资料:自定义标签

以上是关于Django自定义模板标签和过滤器的主要内容,如果未能解决你的问题,请参考以下文章

django 第五课自定义模板过滤器与标签

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

django 编写我的第一个自定义模板标签和过滤器

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

Django——模板层(template)(模板语法自定义模板过滤器及标签模板继承)

Django之Django模板自定义过滤器