zoukankan      html  css  js  c++  java
  • inclusion_tag模块

    inclusion_tag模块

    1.当页面上某一块区域的内容需要在多个页面上展示的使用,并且该区域的内容需要通过传参数才能正常显示,那么我们可以优先考虑inclusion_tag模块:

    自定义标签过滤器inclusion_tag三步骤战略:

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

    2.在文件夹下新建任意名称的py文件

    3.在该py文件内必须先写两句代码

    from django.template import Library
    register = Library
    

    2.下面我们看一个BBS的示例

    from django.template import Library
    from app01 import models
    from django.db.models import Count
    from django.db.models.functions import TruncMonth
    
    register = Library()
    
    @register.inclusion_tag('left_menu.html')
    # 定义一个函数,接收一个username参数,(因为调用这个的时候需要传一个username参数)
    def my_menu(username):
        user_obj = models.Userinfo.objects.filter(username=username).first()
        # 因为用户表与blog表示一对一的关系表所以可以通过下面的方法取值
        blog = user_obj.blog
        # 1.查询当前用户每一个分类及分类下的文章数
        category_list = models.Categroy.objects.filter(blog=blog).annotate(num=Count('article')).values_list('num', 'cate_name','pk')
    
        # 2.查询当前用户每一个标签及标签下的文章数
        tag_list = models.Tag.objects.filter(blog=blog).annotate(num=Count('article')).values_list('tag_name', 'num', 'pk')
    
        # 3.按年月分组
        data_list = models.Article.objects.filter(blog=blog).annotate(month=TruncMonth('create_time')).values('month').annotate(num=Count('pk')).values_list('month', 'num')
        return locals()
    
  • 相关阅读:
    python os.path模块常用方法详解
    PHP脚本执行效率性能检测之WebGrind的使用
    Laravel操作上传文件的方法
    Nginx获取自定义头部header的值
    Laravel Nginx 除 `/` 外所有路由 404
    laravel查看执行的sql语句
    laravel 安装excel扩展
    mysql 按值排序
    处理laravel表单提交默认将空值转为null的问题
    设置虚拟机里的Centos7的IP
  • 原文地址:https://www.cnblogs.com/mqhpy/p/12049993.html
Copyright © 2011-2022 走看看