将侧边栏制成inclusion_tag

在开发过程中,像侧边栏这种功能的版块,我们在很多页面都需要使用到的时候,我们则需要在视图函数中书写重复的代码,这样很繁琐,我们可以将侧边栏制成inclusion_tag,后面我们需要用到侧边栏功能时,只需要导入即可!

创新互联公司主要从事成都网站建设、成都网站设计、网页设计、企业做网站、公司建网站等业务。立足成都服务长泰,10年网站建设经验,价格优惠、服务专业,欢迎来电咨询建站服务:18982081108

将侧边栏制成inclusion_tag的步骤:

1.在应用下创建一个名字必须叫templatetags的文件夹

2.在该文件夹内,创建一个任意名称的py文件

3.在该py文件内,固定写以下两行代码:
    from django import template
    register = template.Library()

自制inclusion_tag文件代码

from django import template
from app01 import models
from django.db.models import Count
from django.db.models.functions import TruncMonth


register = template.Library()

# 自定义inclusion_tag
@register.inclusion_tag('left_menu.html')  # 里面放一个侧边栏的html文件
def left_menu(username):  # username是调用时需要传入的参数
    # 构造侧边栏需要的数据
    user_obj = models.UserInfo.objects.filter(username=username).first()
    blog = user_obj.blog
    # 查出个人站点的分类和分类数
    category_list = models.Category.objects.filter(blog=blog).annotate(count_num=Count('article')).values('name',
                                                                                                          'count_num',
                                                                                                          'pk')
    # print(category_list)
    # 查出个人站点的标签和标签数
    tag_list = models.Tag.objects.filter(blog=blog).annotate(num=Count('article')).values('name', 'num', 'pk')
    # 按照年月统计所有文章
    date_list = models.Article.objects.filter(blog=blog).annotate(month=TruncMonth('create_time')).values(
        'month').annotate(num=Count('id')).values_list('month', 'num')
    # print(date_list)
    return locals()  # 最后需要locals一下

left_menu.html页面创建:

文章分类

{% for category in category_list %}

{{ category.0 }}({{ category.1 }})

{% endfor %}

文章标签

{% for tag in tag_list %}

{{ tag.0 }}({{ tag.1 }})

{% endfor %}

日期归档

{% for data in data_list %}

{{ data.month|date:'Y年m月' }}({{ data.count_num }})

{% endfor %}

前端页面代码

{% load mytag %}  # 加载自制的inclusion_tag文件
{% left_menu username %} # 加载inclusion_tag函数并传入需要的参数

分享题目:将侧边栏制成inclusion_tag
网址分享:http://bzwzjz.com/article/dsogsds.html

其他资讯

Copyright © 2007-2020 广东宝晨空调科技有限公司 All Rights Reserved 粤ICP备2022107769号
友情链接: 成都网站制作 重庆外贸网站建设 网站建设 网站设计 手机网站设计 高端定制网站设计 企业手机网站建设 手机网站制作 定制网站设计 成都企业网站建设公司 网站制作 成都网站建设 成都网站建设 网站设计公司 企业网站设计 手机网站制作设计 成都网站建设 成都定制网站建设 网站建设开发 营销网站建设 成都营销网站建设 成都网站建设