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
  • 相关阅读:
    Centos/Docker/Nginx/Node/Jenkins 操作
    MyBatis 流式查询
    127.0.0.1
    Spring中的@Bean注解
    工厂模式
    webservice
    vs每次拉下一个控件都必选设置为绝对位置才可以移动,怎样解决啊
    ASP.NET AJAX 概述
    AJAX介绍
    时间控件
  • 原文地址:https://www.cnblogs.com/pinganzi/p/4843545.html
Copyright © 2011-2022 走看看