2012-02-07 95 views
0

基本上我有一个基本模板,基本模板包含另一个模板,比方说,最新的更新。因此,结构是这样的:模板中包含的Django渲染模板

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

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

我不完全确定这个条款,随意更改标题。

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

+0

你只是在谈论使用上下文将视图内的模板渲染出来?我真的不明白你的术语 – jdi 2012-02-07 06:50:46

+0

@jdi这是最难的事情,大声笑。我知道如何使用上下文在视图内呈现模板。但由于这包括模板,所以我很不清楚如何渲染它。如果我要正常渲染它,那意味着我必须在views.py中呈现每一个函数? (因为基本上每个页面都有latest_update) – 2012-02-07 07:08:58

+2

或者它是你正在寻找的包含标签? https://docs.djangoproject.com/en/dev/howto/custom-template-tags/#inclusion-tags – Raekkeri 2012-02-07 07:11:00

回答

2

您可以使用Django模板标签。定义一个名为latest_update_tags文件您的Django应用程序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 %}