2009-11-16 81 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