[Zope] where has the REQUEST-object gone???
Andy Pahne
ap@net22.net
Mon, 8 May 2000 14:38:39 +0200
hi,
at the moment we are builduing a database-enabled three-language website. we
have the contents (texts) for the site already in a database. I wrote a
Z-SQL-Method sql_get_text which takes id_to_get as argument. So, when I
call
<dtml-in "get_text(id_to_get=xxxx)">
<dtml-var text_value>
</dtml-in>
I get the text I was looking for. (Note that this ZSQL-method will return
only one result, because id_to_get is the primary key of the database table
and therefore unique).
I wanted to make things a bit easier for the people who generate the
templates for the site. So I coded a helper-method named get_text which also
takes id_to_get as argument. It holds exactly the code-snippet from above.
By doing so I wanted the HTML-Coders to type
<dtml-var "get_text(id_to_get=xxxx)">
so that they do not have to worry about the dtml-in-tag. It did not work. I
get an error-message that Zope can not find the ZSQL-method sql_get_text
method. Here is the traceback:
Traceback (innermost last):
File /usr/local/src/Zope-2.1.6-src/lib/python/ZPublisher/Publish.py, line
214, in publish_module
File /usr/local/src/Zope-2.1.6-src/lib/python/ZPublisher/Publish.py, line
179, in publish
File /usr/local/src/Zope-2.1.6-src/lib/python/Zope/__init__.py, line 202,
in zpublisher_exception_hook
(Object: ElementWithAttributes)
File /usr/local/src/Zope-2.1.6-src/lib/python/ZPublisher/Publish.py, line
165, in publish
File /usr/local/src/Zope-2.1.6-src/lib/python/ZPublisher/mapply.py, line
160, in mapply
(Object: content)
File /usr/local/src/Zope-2.1.6-src/lib/python/ZPublisher/Publish.py, line
102, in call_object
(Object: content)
File /usr/local/src/Zope-2.1.6-src/lib/python/OFS/DTMLMethod.py, line 150,
in __call__
(Object: content)
File
/usr/local/src/Zope-2.1.6-src/lib/python/DocumentTemplate/DT_String.py, line
502, in __call__
(Object: content)
File /usr/local/src/Zope-2.1.6-src/lib/python/DocumentTemplate/DT_Util.py,
line 335, in eval
(Object: _['content-ms'])
(Info: _)
File <string>, line 0, in ?
File /usr/local/src/Zope-2.1.6-src/lib/python/DocumentTemplate/DT_Util.py,
line 161, in careful_getitem
File /usr/local/src/Zope-2.1.6-src/lib/python/OFS/DTMLMethod.py, line 146,
in __call__
(Object: content-ms)
File
/usr/local/src/Zope-2.1.6-src/lib/python/DocumentTemplate/DT_String.py, line
502, in __call__
(Object: content-ms)
File /usr/local/src/Zope-2.1.6-src/lib/python/DocumentTemplate/DT_Util.py,
line 335, in eval
(Object: get_text(id_to_get='AXIN_001'))
(Info: get_text)
File <string>, line 0, in ?
File /usr/local/src/Zope-2.1.6-src/lib/python/OFS/DTMLMethod.py, line 146,
in __call__
(Object: get_text)
File
/usr/local/src/Zope-2.1.6-src/lib/python/DocumentTemplate/DT_String.py, line
502, in __call__
(Object: get_text)
File /usr/local/src/Zope-2.1.6-src/lib/python/DocumentTemplate/DT_With.py,
line 132, in render
(Object: REQUEST)
KeyError: (see above)
My next idea was:
<dtml-with REQUEST>
<dtml-in "get_text(id_to_get=xxxx)">
<dtml-var text_value>
</dtml-in>
</dtml-with>
I don't know why, but the <dtml-with REQUEST> fixed a lot of errors before,
so I just gave it a try. But then I received and error-message telling me
that I am trying to refference the non-existing object REQUEST.
Now, why doesn't it find my method and why did the REQUEST-object
disappear???
PS: I am doing Zope for half a year now but the namespace-stack is still
mysterious to me.
Andy Pahne, ap@net22.net
net22 GmbH
Bad Meinberger Strasse 1
32760 Detmold
0 52 31 - 580 640
http://www.net22.net