[Zope] python functions and ZPT

J Cameron Cooper jccooper@jcameroncooper.com
Tue, 20 May 2003 16:30:34 -0500


>
>
>got a small question here using the following ZPT:
>
>| <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
>| <!--	"http://www.w3.org/TR/html4/transitional.dtd"> -->
>| <html metal:use-macro="here/std_template/macros/template">
>| 
>| <span metal:fill-slot="body">
>| 	<span tal:condition="python: not here.is_logged_on()">
>| 		<h3>Sie sind nun Ausgeloggt</h3>
>| 		<a href="index_html" tal:attributes="href request/came_from">Zur&uuml;ck</a>
>| 	</span>
>| 	<span tal:condition="python:here.is_logged_on()">
>| 		Sie sind noch mittels HTTP-Authentication eingelogged. Sie sich müssen
>| 		eventuell <a href="/manage_zmi_logout">aus dem Zope Managment Interface
>| 		ausloggen</a>.
>| 	</span>
>| </span>
>| </html>
>
>I get an attribute error about request when opening this ZPT with
>the following link 
>logout_form?came_from=http://localhost:9673/index_html
>
>How can this happen? I have not "request" within the macro, the only 
>request/ object is up there in the ZPT.
>
Are you sure about that? There's something going on outside what you 
have written above. It worked for me with a dead simple std_template and 
without the is_logged_on() bits. So I suspect one of those is the 
culprit. How does it work without the macro and/or method calls?

>Another question: Is it possible to call python methods from ZPT, which
>are defined in a python script? I have several scripts and would like to
>hold them in 1 script-Object in Zope, as they all belong to the
>login-process.
>  
>
A Python script is really a method in itself. You can stick a bunch of 
them in a folder and call them like 'folder.somescript()' if you want to 
simulate a module for organizational reasons.

          --jcc