[Zope] Pass objects from template to template via HTML forms.

Tino Wildenhain tino at wildenhain.de
Tue Jul 5 04:29:45 EDT 2005


Am Montag, den 04.07.2005, 22:53 +0200 schrieb Negroup -:
> Is there some way to pass an object from template A to template B via
> HTML forms?
> 
> A
> <form name="a" action="b" method="post">
> <input type="hidden" name="obj" tal:attributes="value here" />
> <input type="submit" value="Press" />
> </form>
> 
> B
> <b tal:content="structure here/REQUEST"></b>
> 
> Template B prints:
> form
> obj	'<OrderedFolder instance at 42d9aec0>'
> 
> I need the object itself, not the string representing the object!

You cannot simply pass a ZOPE object in a form like that.
You can handle fairly complex structures (lists and dictionaries
with int, float, string in them) but whole objects would
need to be pickled and then open a huge security hole
(Whatever is in the client can and will be faked)

So best option I see is to not pass the object but rather
pass the reference to the object. You can resolve
it via restrictedTraverse('/path/from/form')

Btw. avoid much code in the Template. Its a maintenance
headache. You can do it esily in a python script and 
call this from template.





More information about the Zope mailing list