2010-05-07 65 views
10

在哪种情况下创建模板标签(并将它们加载到模板中)比创建上下文处理器(自动填充请求)要好?上下文处理器与模板标签的最佳实践?

例如我有一个动态菜单必须包含到所有模板中,所以我将它放到了我的base.html中。什么是首选用法:上下文处理器或自定义模板标记?而为什么

回答

12

上下文处理器用于将数据(信息,内容,对象)放入用于呈现页面的上下文中。

模板标签用于格式化或处理该内容。

构成新数据的模板标签令人困惑。不是不可能或错误,但很混乱。

+1

不一定在我看来: {%负载advertisementtags%} {%get_top_ads为我的广告%} { 在我的广告%%的广告} ... {%ENDFOR%} 这与模板标签的方式。通过一个上下文处理器,我可以将“myad”放入上下文中。这就是为什么我要求“最佳实践”的原因。 也许这只是一个品味问题。 – mawimawi 2010-05-10 19:21:15

+4

@mawimawi:这不是品味的问题。 “广告标签”*应该来自上下文处理器 - 它们是内容。从技术上讲,任何事情都是可能的,包括真正难以理解的事情。如果内容来自上下文,则更简单。 – 2010-05-10 22:26:11