Django的register.simple_tag简单使用

在使用django的过程中,有时候自带模版不能满足需求,就需要自定义模版。其中最简单的方法是使用simple_tag。以下简单介绍simple_tag的使用。

要在对应的app下面创建templatetags目录,比如simple_tag要渲染某的html文件,那么就在渲染这个html文件的views.py同级目录,这创建templatetags目录。

注:实际测试当中,发现在任何一个APP下创建templatetags目录都可以使用(APP当然要注册到settings.py里),所以可以考虑创建一个专门给templatetags使用的APP,然后在里面创建templatetags目录。另外,官网建议添加__init__.py文件,实际操作中没添加也正常使用。

polls/
    __init__.py
    models.py
    templatetags/
        __init__.py
        poll_extras.py
    views.py

poll_extras.py

from django import template

# 这里必须要写register,必须要写register
register = template.Library()

@register.simple_tag
def ajax_likes(comment_id):
    return comment_id

html模板文件

# poll_extras为poll_extras.py文件名:
{%load poll_extras%}

# 在模板里,调用函数。ajax_likes为poll_extras.py文件里,函数的名称;
# comment.pk为传入的实参。comment.pk变量,是views.py渲染给这个html模板的。
{% ajax_likes comment.pk %}

配置完毕后,必须要重启服务才能生效。

你可能感兴趣的:(Django)