Django渲染模板包含在模板中

时间:2012-02-07 06:43:33

标签: python django

基本上我有一个基本模板,基本模板包含另一个模板,比方说,最新更新。所以结构是这样的:

-base.html
     |---------latest_update.html

所以,我知道如何包含一个简单的模板,比如没有任何数据处理的模板(不需要与任何应用程序view.py交互)。但是,如何将包含的模板附加到django应用程序view.py中,以便我至少可以定期显示更新的数据?

我不完全确定这个术语,随时更改标题。

编辑:这个问题有点混乱,因为我不知道如何正确地使用术语。所以,我有这个包含模板。每个页面都有它。因此,从我有限的知识来看,这意味着我必须为每个点击view.py的页面手动渲染它。有没有更简单的方法呢?

1 个答案:

答案 0 :(得分:2)

您可以使用Django模板标签。在Django app latest_update_tags目录下定义一个名为templatetags的文件,并编写如下代码来定义latest_update templatetags:

from django import template

from app.models import UpdateObject

register = template.Library()
@register.inclusion_tag("latest_update.html")
def latest_update():
  update_objects = UpdateObject.all().[:10]
  return {"update_objects": update_objects}

然后在你的base.html中使用它:

{% load latest_update_tags %}
......
{% latest_update %}