Python 升级Cheetah模板并在变量分配中获得奇数错误

Python 升级Cheetah模板并在变量分配中获得奇数错误,python,cheetah,Python,Cheetah,我正试图在一个工作项目中将Cheetah从0.9升级到2.4.4。在模板中创建某些变量时,我会遇到一些奇怪的错误。以下是一个例子: #set formUtil = $iLib.aquariumFactory("widget.FormUtil", defaults=[{"username": $session.get("username")}, $form]) 这会在编译时产生以下错误: NotFound:在搜索“get”时找不到“get” 如果我这样重构: #set username

我正试图在一个工作项目中将Cheetah从0.9升级到2.4.4。在模板中创建某些变量时,我会遇到一些奇怪的错误。以下是一个例子:

#set formUtil = $iLib.aquariumFactory("widget.FormUtil",
    defaults=[{"username": $session.get("username")}, $form])
这会在编译时产生以下错误:

NotFound:在搜索“get”时找不到“get”

如果我这样重构:

#set username = $session.get("username")
#set formUtil = $iLib.aquariumFactory("widget.FormUtil",
    defaults=[{"username": $username}, $form])

我没有错误。我在其他地方也遇到类似的错误(“搜索X时找不到X”),但我不清楚Cheetah中发生了什么变化,以便我能够以一致的方式解决它。

我发现了这个问题。Cheetah的WebwareServlet代码包含请求、响应、会话和事务变量。这些变量成为模板中的占位符。如果不使用WebWare,则这些占位符将设置为“无”,并将覆盖搜索列表中任何类似的命名值