我试图将工作项目中的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”),但我不清楚猎豹的变化是什么,以便我能以一致的方式解决它。
答案 0 :(得分:1)
我想出了这个问题。 Cheetah的WebWare Servlet代码包含请求,响应,会话和事务的变量。这些变量成为模板中的占位符。如果您不使用WebWare,则这些占位符将设置为None,并将覆盖搜索列表中任何类似命名的值。