Ferhat Ayaz wrote at 2006-8-28 11:06 -0700:
>Here my question:
>You can do acquisition on URL like
>here the result of employee_by_id (param is emp_id=2)
>is used by viewEmployee.
>But I want to use it in a page template like
><td tal:content=
>   "structure mployee_by_id/emp_id/2/viewEmployee">
>Unfortunatly this will not work like the above

The reason for this different behaviour is that a
ZSQL method uses a traversal hook to implement the
"<method>/<parameter>" feature.
This traversal hook is only activated during URL traversal
but not for path expression evaluation.

Fortunately, you do not need this hook in TALES.
You can instead use a Python expression to call
the ZSQL Method explicitely:

    <td tal:content="
      structure python:employee_by_id(emp_id=2).viewEmployee()
      " />

This will work only (reliably) when "viewEmployee" is
a PageTemplate (not a DTML object).

For a DTML object "viewEmployee" you could use:

   <td tal:define="employee python:employee_by_id(emp_id=2)"

You find the reason for this strange DTML object behaviour
in the "Calling DTML objects" section of


Zope maillist  -  Zope@zope.org
**   No cross posts or HTML encoding!  **
(Related lists - 
 http://mail.zope.org/mailman/listinfo/zope-dev )

Reply via email to