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
  • 相关阅读:
    菜鸟涂鸦作品展_No.29
    菜鸟涂鸦作品展_No.27
    菜鸟涂鸦作品展_No.26
    关注的前沿动态
    货币转换
    第二周总结
    老鼠
    71 打印沙漏
    学习总结0.0
    第五周作业
  • 原文地址:https://www.cnblogs.com/pinganzi/p/4843545.html
Copyright © 2011-2022 走看看