(二)Django自定义标签

1.创建自定义标签

在项目的APP中新建一个Python Package-->blog_tags.py

代码:

from django import template
from ..models import Post   #models

register = template.Library()
@register.simple_tag
def get_recent_posts(num=4):
    return Post.objects.all().order_by('-created_time')[:num]

2.配置setting(目的是在模板中引用时能够找到)

TEMPLATES = [
    {
        ...
        'OPTIONS': {
            'context_processors': [
                ...
            ],
            #配置自定义标签
            'libraries':{
                'blog_tags': 'blog.templates.blog_tags',
            }
        },
    },
]    

3.模板中使用

首先在html中加载自定义的标签

{% load blog_tags %}

使用

{% load staticfiles %}
{% load blog_tags %}
<!DOCTYPE html>
<html>
...
{% get_recent_posts as recent_post_list %}
...
</html>
原文地址:https://www.cnblogs.com/bbbbbd/p/7722344.html