• simple_tag与inclusion_tag的使用


    simple_tag与inclusion_tag的使用
    simple_tag与fifter的使用:我们可以自定义函数提供给前端使用
    在项目的app下创建一个templatetags的文件夹
    创建一个py文件(simple_tag_text.py)
    导入相应的模块,并自定义函数
    
    from django import template
    register = template.Library()
    
    
    @register.simple_tag
    def sum_test(x, y):
    
        return x+y
    
    然后就可以在前端引用该函数
    
    {% load simple_tag_text %}
    {% sum_test 参数一 参数二 %}
    
    fifter与simple_tag使用方式基本一样但是最多传入2个参数,并且传入方式不一样	{{参数一|sum_test:参数二}},但是fifter可以用于{{if for 等情况}},而simple_tag不行
    
    inclusion_tag的使用:在我们平时,如果一个操作在多个页面中使用我们可以把该功能写入inclusion_tag中,然后让该功能作用用于模板中,其他先用该功能的就可以直接继承模板
    在项目的app下创建一个templatetags的文件夹
    创建一个py文件(project.py 这里我们用来实现后台的导航条)
    导入相应的模块,并自定义函数
    
    @register.inclusion_tag('inclusion/manage_menu_list.html')
    def manage_menu_list(request):
        data_list = [
            {'title': '概览', 'url': reverse("dashboard", kwargs={'project_id': request.tracer.project.id})},
            {'title': '问题', 'url': reverse("issues", kwargs={'project_id': request.tracer.project.id})},
            {'title': '统计', 'url': reverse("statistics", kwargs={'project_id': request.tracer.project.id})},
            {'title': 'wiki', 'url': reverse("wiki", kwargs={'project_id': request.tracer.project.id})},
            {'title': '文件', 'url': reverse("file", kwargs={'project_id': request.tracer.project.id})},
            {'title': '配置', 'url': reverse("setting", kwargs={'project_id': request.tracer.project.id})},
        ]
    
        for item in data_list:
    
            if request.path_info.startswith(item['url']):
                """如果发起请求的url是data_list中的某个url,就将这个url变成选中状态"""
                item['class'] = 'active'
    
        return {'data_list': data_list}
    
    然后在inclusion/manage_menu_list.html中获取数据
    
    {% for item in data_list %}
        <li {% if item.class %} class="{{ item.class }}" {% endif %} ><a href="{{ item.url }}">{{ item.title }}</a></li>
    {% endfor %}
    
    如果我们想用导航条就继承manage_menu_list.html就行
    
    {% extends 'layout/manage.html' %}
    
  • 相关阅读:
    初賽
    SA
    高斯-约旦消元法
    AC自动机
    KMP
    关于scanf
    网络流
    常用SQL语句
    Java开发中的23种设计模式详解(转)
    generatorConfig.xml
  • 原文地址:https://www.cnblogs.com/KingOfCattle/p/14312896.html
Copyright © 2020-2023  润新知