2

你如何从 REPL 渲染一个 Zope DTML 说没有文件夹对象或任何类似的测试用例?

我有一个名为 /tmp/tmp.dtml 的文件,其内容如下:

<dtml-var test>

我可以做到这一点:

from AccessControl import ImplC as impl
from App.special_dtml import DTMLFile

#globals has test variable define if that helps?
dtml_page = DTMLFile('/tmp/tmp',globals())
dtml_page() give "None\n"

如何将正确的命名空间注入 DTMLFile 对象或在调用期间?

4

1 回答 1

0

这似乎行得通。我想在没有文件夹的情况下模拟它。

class Test(Folder):
    test = "World"
    dtml = DTMLFile('/tmp/tmp')
dtmlobj = Test()
dtmlobj.dtml()

由于不太清楚的原因,从 Folder 继承的类在这里似乎很重要?

我不明白为什么 Test.test 的重要性,其中 Test 是从 Folder 继承的。这是某种类型的 Zope 约定吗?

我试过了

dtml = DTMLFile('/tmp/tmp') 
setattr(dtml,'test','foo') 
dtml.render()

我虽然是关于“自我”拥有正确的变量,但显然不是。

于 2014-08-10T16:51:27.813 回答