• django inclusion_tag


    一种比较普遍的tag类型是只是渲染其它模块显示下内容,这样的类型叫做Inclusion Tag。
    例如,实现以下tag:
    {% books_for_author author %}
    渲染结果为:
    <ul>
    <li>The Cat In The Hat</li>
    <li>Hop On Pop</li>
    <li>Green Eggs And Ham</li>
    </ul>
    列出某个作者所有的书。
    • 定义函数
    def books_for_author(author):
        books = Book.objects.filter(authors__id=author.id)
        return {'books': books}
    • 创建另一个模板文件book_snippet.html
    <ul>
    {% for book in books %}
    <li>{{ book.title }}</li>
    {% endfor %}
    </ul>
    • 注册tag
    register.inclusion_tag('book_snippet.html')(books_for_author)
     
    有些你的模板可以使用父模板的context内容,Django提供一个takes_context参数来实现,
    使用之后,tag不能再带参数,
    @register.inclusion_tag('link.html', takes_context=True)
    def jump_link(context):
        return {
            'link': context['home_link'],
            'title': context['home_title'],
    }
    模板文件link.html为
    Jump directly to <a href="{{ link }}">{{ title }}</a>.
    使用方法:
    {% jump_link %}
     
    转自: http://www.cnblogs.com/btchenguang/archive/2012/09/05/2672364.html
  • 相关阅读:
    关于用Max导出Unity3D使用的FBX文件流程注解
    EffectManager
    Python Socket API 笔记
    UIScreenAdaptive
    CentOS 5 全功能WWW服务器搭建全教程 V3.0
    CentOS 6.4 图文安装教程(有些设置大部分教程没出现过)
    Django---分页器、中间件
    Django-form表单
    Django-认证系统
    Django——model基础
  • 原文地址:https://www.cnblogs.com/pinganzi/p/4843545.html
Copyright © 2020-2023  润新知