Re: Indirect calling of extensions
I wrote:
I want to call this in a manner similar to:
<!--#let call_method="'pyFetch'"--> <!--#in sql-method-returns-href--> <!--#var "_[call_method]( href )"--> <!--#/in--> <!--#/let-->
Tres Seaver wrote:
Try this (untested), assuming the name of the method you want to call is stored somehow in the variable 'methodName'::
<dtml-let methodToCall="_[ methodName ]"> <dtml-in list_hrefs mapping> <dtml-var "methodToCall( this(), href )"> </dtml-in> </dtml-let>
Alas! It doesn't work. It appears to fall down on the line: <dtml-let methodToCall="_[ methodName ]"> Traceback: File C:\PROGRA~1\Zope\lib\python\DocumentTemplate\DT_Let.py, line 144, in render (Object: methodToCall="_[select_method]") File C:\PROGRA~1\Zope\lib\python\DocumentTemplate\DT_Util.py, line 335, in eval (Object: _[select_method]) (Info: select_method) File <string>, line 0, in ? File C:\PROGRA~1\Zope\lib\python\DocumentTemplate\DT_Util.py, line 161, in careful_getitem File [snip]\Products\ExternalMethod\ExternalMethod.py, line 248, in __call__ (Object: pyFetchInvTopicsForHref) (Info: ((), {}, None)) TypeError: (see above) [above= Error Type: TypeError Error Value: not enough arguments; expected 2, got 0 ] It seems evaluating this doesn't just give the string contents of the dictionary item, it evaluates the actual external method call. I think I'll have to give up at this point and take the cludgy option (unless anyone can think up another way). Thanks for your help. Glenn
participants (1)
-
Glenn Rogers