2012-02-21 72 views
1

在龍捲風演示,應用程序名爲博客, 在模板/ home.html的,在這樣的代碼:約在模板文件中的「模塊」在龍捲風

{% extends "base.html" %} 

{% block body %} 
{% for entry in entries %} 
    {{ modules.Entry(entry) }} 
{% end %} 
<div><a href="/archive">{{ _("Archive") }}</a></div> 
{% end %} 

我想知道在哪裏是「模塊」來自。我認爲它應該是這樣的:

{% module Entry(entry) %} 

所以我改變了代碼,它的工作原理。

有人知道模板文件中「模塊」的來源嗎?謝謝。

回答

1

在RequestHandler .__ init__:

self.ui["_modules"] = ObjectDict((n, self._ui_module(n, m)) for n, m in 
          application.ui_modules.iteritems()) 
self.ui["modules"] = self.ui["_modules"] 

在RequestHandler.render_string:

args.update(self.ui) 
args.update(kwargs) 
return t.generate(**args) 

RequestHandler是你的處理器的子類,render_string具有模塊它。

3

你可以找到RequestHandler .__ init__評論:

# UIModules are available as both `modules` and `_modules` in the 
# template namespace. Historically only `modules` was available 
# but could be clobbered by user additions to the namespace. 
# The template {% module %} directive looks in `_modules` to avoid 
# possible conflicts. 

我認爲這可能是寫在舊版本的龍捲風的部分代碼:)所以,我們應該使用{%模塊%}來代替。