2010-02-01 69 views
4

干草的家伙,在PHP当我要加载目前存在的页面(渲染,所有变量输出),我会用多个视图装入模板

include 'mypage.php' 

这将加载网页并渲染输出。

我该如何在Django中做这样的事情?我的问题是,我有一个“快速列表”,其中列出了一些热门项目。我希望这个列表出现在每一个页面上,即使我不叫这个对象。

有什么想法?

编辑:观点被称为shop.app.popular_items

+0

我想知道这个问题的正确答案是否真的是模板继承与包含标记。思考? – 2010-02-01 16:05:48

回答

1
+1

上下文处理器只给你变量。您仍然需要在某处处理演示文稿,因此您最终会让处理器自动将值放入上下文中,但您必须将正确的模板代码放在所有模板中,或者包含它。这就是为什么我更喜欢Inclusion标签(“显式比隐式更好”)。 – 2010-02-01 16:22:14

2

编辑:

丹尼尔的回答之后,你想拥有它的每一页上如你所说,
becomingGuru的回答可能是最好的解决方案。


这不属于视图(如果您不想将其显示为独立页面)。

这应该进入custom template tag

1

要回答你的问题,要成为关于什么时候使用上下文处理器以及何时使用包含标签的问题,请记住上下文处理器在之间每运行模板呈现。所以只有当你知道你永远需要价值时才应该使用它们。