[Zope] Call PageTemplateFile class instances

Peter Bengtsson peter at fry-it.com
Thu Nov 13 11:53:07 EST 2008


This used to work in zope 2.8 but not now in zope 2.10 (actually zope
2.10.7 to be exact)

from Products.PageTemplates.PageTemplateFile import PageTemplateFile
class MyProduct(Folder):
    meta_type = "bla"
    page = PageTemplateFile('zpt/foo.pt', globals())

    def render_page(self):
         html = self.page(self.REQUEST) # ERROR!!

The error is ridiculously large so I've truncated it:


Error in test test_foo
(Products.MoneyVillage2.tests.test_creditconfusion.TestCreditCheck)
Traceback (most recent call last):
  File "/home/peterbe/virtualenvzope/MoneyVillage2/zope2107/lib/python/Testing/ZopeTestCase/profiler.py",
line 98, in __call__
    testMethod()
  File "/home/peterbe/virtualenvzope/MoneyVillage2/zope2107/Products/MoneyVillage2/tests/test_creditconfusion.py",
line 20, in test_foo
    print cc.advice2(self.app.REQUEST)
  File "/home/peterbe/virtualenvzope/MoneyVillage2/zope2107/lib/python/Shared/DC/Scripts/Bindings.py",
line 313, in __call__
    return self._bindAndExec(args, kw, None)
  File "/home/peterbe/virtualenvzope/MoneyVillage2/zope2107/lib/python/Shared/DC/Scripts/Bindings.py",
line 350, in _bindAndExec
    return self._exec(bound_data, args, kw)
  File "/home/peterbe/virtualenvzope/MoneyVillage2/zope2107/lib/python/Products/PageTemplates/PageTemplateFile.py",
line 129, in _exec
    return self.pt_render(extra_context=bound_names)
  File "/home/peterbe/virtualenvzope/MoneyVillage2/zope2107/lib/python/Products/PageTemplates/PageTemplate.py",
line 98, in pt_render
    showtal=showtal)
  File "/home/peterbe/virtualenvzope/MoneyVillage2/zope2107/lib/python/zope/pagetemplate/pagetemplate.py",
line 117, in pt_render
    strictinsert=0, sourceAnnotations=sourceAnnotations)()
  File "/home/peterbe/virtualenvzope/MoneyVillage2/zope2107/lib/python/zope/tal/talinterpreter.py",
line 271, in __call__
    self.interpret(self.program)
  File "/home/peterbe/virtualenvzope/MoneyVillage2/zope2107/lib/python/zope/tal/talinterpreter.py",
line 346, in interpret
    handlers[opcode](self, args)
  File "/home/peterbe/virtualenvzope/MoneyVillage2/zope2107/lib/python/zope/tal/talinterpreter.py",
line 870, in do_useMacro
    macro = self.engine.evaluateMacro(macroExpr)
  File "/home/peterbe/virtualenvzope/MoneyVillage2/zope2107/lib/python/zope/tales/tales.py",
line 696, in evaluate
    return expression(self)
  File "/home/peterbe/virtualenvzope/MoneyVillage2/zope2107/lib/python/zope/tales/expressions.py",
line 217, in __call__
    return self._eval(econtext)
  File "/home/peterbe/virtualenvzope/MoneyVillage2/zope2107/lib/python/Products/PageTemplates/Expressions.py",
line 153, in _eval
    ob = self._subexprs[-1](econtext)
  File "/home/peterbe/virtualenvzope/MoneyVillage2/zope2107/lib/python/zope/tales/expressions.py",
line 124, in _eval
    ob = self._traverser(ob, element, econtext)
  File "/home/peterbe/virtualenvzope/MoneyVillage2/zope2107/lib/python/Products/PageTemplates/Expressions.py",
line 83, in boboAwareZopeTraverse
    request=request)
  File "/home/peterbe/virtualenvzope/MoneyVillage2/zope2107/lib/python/zope/traversing/adapters.py",
line 161, in traversePathElement
    raise TraversalError('No traversable adapter found', obj)
TraversalError: ('No traversable adapter found', {'master':
[('version', '1.6'), ('mode', 'html'), ('setPosition', (1, 0)),
('setSourceFile', 'main_template'), ('beginScope', {'define-macro':
'master'}), ('optTag', ('metal:block', None, 'metal', 0, [('startTag',
('metal:block', [('define-macro', 'master', 'metal')]))], [('rawtextCo
...........................MANY MANY MORE
LINES..................................



-- 
Peter Bengtsson,
work www.fry-it.com
home www.peterbe.com
hobby www.issuetrackerproduct.com


More information about the Zope mailing list