[Zope] Re: brain hurts regarding dynamic fcn args in Python
Hung Jung Lu
hungjunglu@hotmail.com
Mon, 19 Jun 2000 15:20:48 PDT
--- In zope@egroups.com, jeff@s... ("Jeff Sasmor") wrote:
><dtml-in
>"Catalog.searchResults(meta_type='EventDoc',event_date=[first,last],event_date_usage='range:min:max',sort_on='event_date
>')">
> ....
>
>Now if the 'moderated' property is active I want to add the keyword arg
>
>reviewed='on'
>
>to the arg list at the time that the searchResults method is invoked.
Hmm... I have had to do something similar recently. But I did not use
dynamical argument list. If your choices are simple enough, you could do:
------------------------------------------------------
<dtml-if "moderated == 'active'">
<dtml-in
"Catalog.searchResults(meta_type='EventDoc',event_date=[first,last],event_date_usage='range:min:max',review='on',sort_on='event_date
>')">
<dtml-var shared_dtml>
<dtml-in>
<dtml-else>
<dtml-in
"Catalog.searchResults(meta_type='EventDoc',event_date=[first,last],event_date_usage='range:min:max',sort_on='event_date
>')">
<dtml-var shared_dtml>
<dtml-in>
</dtml-if>
------------------------------------------------------
Yes, the shared_dtml will still have full access to all the "sequence-item"
type of variables.
If you have to check more than a few properties, then the above construction
might not be so good.
If you can always pass a value to a keyword argument, then it's best to use
an aux variable and preset the value of the argument.
<dtml-if "moderated == 'active'">
<dtml-call "REQUEST.set('review', 'on')">
<dtml-else>
<dtml-call "REQUEST.set('review', 'off')">
</dtml-if>
<dtml-in
"Catalog.searchResults(meta_type='EventDoc',event_date=[first,last],event_date_usage='range:min:max',review=review,sort_on='event_date
>')">
...
</dtml-in>
Hung Jung
________________________________________________________________________
Get Your Private, Free E-mail from MSN Hotmail at http://www.hotmail.com