[ZPT] Problem using ExternalFile with METAL macro

Francis Kelly zope at crubellier.com
Wed Feb 18 17:31:17 EST 2004


I'm unable to get ExternalFile to work with macros within page templates 
and I'm hoping that some of you have solved this problem.

I'm a newbie to Zope, so it's quite possible it's my error, but I've been 
struggling with this for a while & haven't been able to find anything 
online about my problem.

I have an ExternalFile set to behave like a page template called index_html 
and it calls a macro, m1, in another ExternalFile, mac1, which is also set 
to behave like a pt. In brief I get the following error:

Error Type: AttributeError
Error Value: macros

Note that if the same macro is included in a "real" page template, no error 
occurs. Likewise an error occurs regardless of whether index_html is a 
"real" pt or an ExternalFile behaving like one.

I've included the files themselves and the traceback from the error_log below.

index_html:
<html>
   <head>
     <title tal:content="template/title">The title</title>
   </head>
   <body>
     <table metal:use-macro="here/mac1/macros/m1"></table>
   </body>
</html>

mac1:
<div id="footer"  metal:define-macro="m1" >
hello, world
</div>

Traceback (innermost last):
     * Module ZPublisher.Publish, line 98, in publish
     * Module ZPublisher.mapply, line 88, in mapply
     * Module ZPublisher.Publish, line 39, in call_object
     * Module Products.ExternalFile.ExternalFile, line 404, in __call__
     * Module Shared.DC.Scripts.Bindings, line 306, in __call__
     * Module Shared.DC.Scripts.Bindings, line 343, in _bindAndExec
     * Module Products.PageTemplates.ZopePageTemplate, line 228, in _exec
     * Module Products.PageTemplates.PageTemplate, line 95, in pt_render
       <ZopePageTemplate at /Loomia/index_html/index_html>
     * Module TAL.TALInterpreter, line 200, in __call__
     * Module TAL.TALInterpreter, line 244, in interpret
     * Module TAL.TALInterpreter, line 689, in do_useMacro
     * Module Products.PageTemplates.TALES, line 220, in evaluate
       URL: index_html
       Line 6, Column 4
       Expression: standard:'here/mac1/macros/m1'
       Names:
{'container': <ExternalFile at /Loomia/index_html>,
  'default': <Products.PageTemplates.TALES.Default instance at 0x86d5174>,
  'here': <ExternalFile at /Loomia/index_html>,
  'loop': <SafeMapping instance at 8e0ac00>,
  'modules': <Products.PageTemplates.ZRPythonExpr._SecureModuleImporter 
instance at 0x86d527c>,
  'nothing': None,
  'options': {'args': (<ExternalFile at /Loomia/index_html>,
                       <HTTPRequest, 
URL=http://localhost:8080/Loomia/index_html>)},
  'repeat': <SafeMapping instance at 8e0ac00>,
  'request': <HTTPRequest, URL=http://localhost:8080/Loomia/index_html>,
  'root': <Application instance at 8e0fc60>,
  'template': <ZopePageTemplate at /Loomia/index_html/index_html>,
  'traverse_subpath': [],
  'user': francis}
     * Module Products.PageTemplates.Expressions, line 201, in __call__
     * Module Products.PageTemplates.Expressions, line 189, in _eval
     * Module Products.PageTemplates.Expressions, line 145, in _eval
       __traceback_info__: here
     * Module Products.PageTemplates.Expressions, line 355, in 
restrictedTraverse
       __traceback_info__: {'path': ['mac1', 'macros', 'm1'], 
'TraversalRequestNameStack': ['m1']}


I'm running ExternalFile 1.2, with Zope 2.6 on a box running roughly the
latest version of SuSE Linux, and Python 2.1.3.

Any insight you have into this problem would be most appreciated.

Thanks,
Francis Kelly
zope at crubellier.com  




More information about the ZPT mailing list