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 が Folder から render に継承されている Test.test の重要性がわかりません。これは、ある種の Zope 規約ですか?

私は試した

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

私はそれが正しい変数を持つ「自己」についてだと思っていましたが、明らかにそうではありませんでした。

于 2014-08-10T16:51:27.813 に答える