1

我有一段代码:

                #try:
                    <a href="/organisations/details/?tag=$inv.customer.org.tag">$inv.customer.org.name</a>
                #except NameMapper.NotFound
                    #try:
                        $inv.customer.person.firstname $inv.customer.person.lastname
                    #except NotFound
                        n/a
                    #end try
                #end try

它提出了:

<type 'exceptions.NameError'>:global name 'NameMapper' is not defined
  File "/usr/lib64/python2.7/site-packages/modweb/wsgi/main.py", line 139, in application
     responseBody = str(pageTemplate)
  File "/usr/lib64/python2.7/site-packages/Cheetah/Template.py", line 1005, in __str__
   rc = getattr(self, mainMethName)()
  File "/srv/www/template.py", line 1
  ...

页面 https://pythonhosted.org/Cheetah/users_guide/errorHandling.html

以类似的方式使用它,但我不知道 - 我是否必须从某个地方导入该异常类?

有很多关于同一个 _namepper.so lib 的 C 版本的讨论,但这与同一个 NameMapper 类的更快版本无关,无论最终如何工作,我都会获胜。

4

1 回答 1

1

是的,它需要在定义模板代码的同一页面上定义,将它放在全局链加载模板中是行不通的。

#from Cheetah import NameMapper

解决了这个问题。

于 2018-07-13T11:35:52.130 回答