[Zope] Acquisition question
Dieter Maurer
dieter at handshake.de
Tue Aug 29 13:20:22 EDT 2006
Ferhat Ayaz wrote at 2006-8-28 11:06 -0700:
>Here my question:
>
>You can do acquisition on URL like
>
>http://localhost:8080/employee_by_id/emp_id/2/viewEmployee
>
>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">
></td>
>
>Unfortunatly this will not work like the above
>example.
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)"
tal:content="employee/viewEmployee"
/>
You find the reason for this strange DTML object behaviour
in the "Calling DTML objects" section of
<http://www.dieter.handshake.de/pyprojects/zope/book/chap3.html>
--
Dieter
More information about the Zope
mailing list