zoukankan      html  css  js  c++  java
  • 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
  • 相关阅读:
    mysql日期默认值格式('0000-00-00')错误解决
    休闲一下-精华-IMDB评分8分左右影片400多部!
    开机动画流程
    SystemServer启动服务
    理解Android进程创建流程
    android开机动画启动流程
    Android系统的启动优化
    Android 系统启动(init,zygote)
    Zygote
    init
  • 原文地址:https://www.cnblogs.com/pinganzi/p/4843545.html
Copyright © 2011-2022 走看看