另外一类常用的模板标签是通过渲染 其他 模板显示数据的。 比如说,Django的后台管理界面,它使用了自定义的模板标签来显示新增/编辑表单页面下部的按钮。 那些按钮看起来总是一样的,但是链接却随着所编辑的对象的不同而改变。 这就是一个使用小模板很好的例子,这些小模板就是当前对象的详细信息。
这些排序标签被称为 包含标签 。如何写包含标签最好通过举例来说明。 让我们来写一个能够产生指定作者对象的书籍清单的标签。 我们将这样利用标签:
{% 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}
接下来,我们创建用于渲染标签输出的模板。 在我们的例子中,模板很简单:
<ul> {% for book in books %} <li>{{ book.title }}</li> {% endfor %} </ul>
最后,我们通过对一个 Library 对象使用 inclusion_tag() 方法来创建并注册这个包含标签。
在我们的例子中,如果先前的模板在 polls/result_snippet.html 文件中,那么我们这样注册标签:
register.inclusion_tag('book_snippet.html')(books_for_author)
Python 2.4装饰器语法也能正常工作,所以我们可以这样写:
@register.inclusion_tag('book_snippet.html') def books_for_author(author): # ...
有时候,你的包含标签需要访问父模板的context。 为了解决这个问题,Django为包含标签提供了一个 takes_context 选项。 如果你在创建模板标签时,指明了这个选项,这个标签就不需要参数,并且下面的Python函数会带一个参数: 就是当这个标签被调用时的模板context。
例如,你正在写一个包含标签,该标签包含有指向主页的 home_link 和 home_title 变量。 Python函数会像这样:
@register.inclusion_tag('link.html', takes_context=True) def jump_link(context): return { 'link': context['home_link'], 'title': context['home_title'], }
(注意函数的第一个参数 必须 是 context 。)
模板 link.html 可能包含下面的东西:
Jump directly to <a href="{{ link }}">{{ title }}</a>.
然后您想使用自定义标签时,就可以加载它的库,然后不带参数地调用它,就像这样:
{% jump_link %}
RTX 5090要首发 性能要翻倍!三星展示GDDR7显存
三星在GTC上展示了专为下一代游戏GPU设计的GDDR7内存。
首次推出的GDDR7内存模块密度为16GB,每个模块容量为2GB。其速度预设为32 Gbps(PAM3),但也可以降至28 Gbps,以提高产量和初始阶段的整体性能和成本效益。
据三星表示,GDDR7内存的能效将提高20%,同时工作电压仅为1.1V,低于标准的1.2V。通过采用更新的封装材料和优化的电路设计,使得在高速运行时的发热量降低,GDDR7的热阻比GDDR6降低了70%。
更新动态
- 《刀郎13CD合集》[WAV+CUE][8.4G]
- 群星.2024-天行健影视剧原声带【企鹅影视】【FLAC分轨】
- 郑源2008-源·情歌[首版][WAV+CUE]
- 郭峰1999-甘心情愿[首版][WAV+CUE]
- 关智斌.2006-寻找美惠【英皇娱乐】【FLAC分轨】
- 谢安琪.2007-THEFIRSTDAY(新歌+重绎)【新艺宝】【WAV+CUE】
- 群星.1992-1994-宝丽金绝佳经典2辑【宝丽金】【WAV+CUE】
- 雷婷-《我的爱回不来(紫银合金AQCD)》[WAV+CUE]
- 群星《妙音20周年辉煌经典纪念版》蓝光BSCD[正版原抓WAV+CUE]
- 【雨果唱片】音乐图书馆系列《绣金匾》1999【WAV整轨+CUE】
- 曜爆甘弦乐团《忆声弦命 滚石40【40首OST 致经典】》[320K/MP3][94.1MB]
- 曜爆甘弦乐团《忆声弦命 滚石40【40首OST 致经典】》[FLAC/分轨][208.1MB]
- 丁当《日与夜,跟自己说晚安》[320K/MP3][98.51MB]
- 何炅.2005-漫游【中唱】【WAV+CUE】
- 何嘉莉.1998-MYDREAMS(EP)【飞图】【WAV+CUE】