2009-11-16 80 views
3

我使用内置在web.py templator模板“和”功能,我得到以下错误:Web.py模板错误:“和”不存在

global name 'sum' is not defined 

源代码如下:

$if profs: 
    $for prof in profs: 
     $sum([1, 2, 3]) 

我可以在终端的Python REPL中使用'sum'。

可能是什么问题?

感谢, 雅各

回答

4

添加的功能在一个字典,并通过为全局变量到render:

render = web.template.render('templates/', globals={'sum': sum}) 

然后在你的模板你可以使用它:

$def with (numbers) 

<h1>Numbers add to $sum(numbers)</h1> 
0

并非所有的Python代码模板标记,请尝试这样的事:

$if profs: 
    $for prof in profs: 
     $code: 
     mysum = sum([1, 2, 3]) 
     $mysum 
+0

不,错误依然存在。 我只想总结一个列表,我会认为这将是他们在模板中允许的Python子集的一部分,但也许我错了。 – 2009-11-16 09:35:52

+2

模板语言通常不允许直接实例化函数调用。您可能需要做一些事情,比如通过属性或方法来提前分配sum值。 – jathanism 2009-11-16 19:58:20