----- Original Message ----- From: Michel Pelletier <michel@digicool.com>
Tanming Fong wrote:
Now processForm need to tell which and how many choice.x:record are entered. This works: <dtml-var "REQUEST['choice']"> that's as far as I can go. I want to do: <dtml-in "REQUEST['choice'].keys()"> <dtml-var sequence-item>:<dtml-var sequence-value> </dtml> but it doesn't know what "keys()" is.
Question: how do I get the keys and values for this "choice" record in processForm?
Record objects do not implement a mapping interface.
In the current CVS they do. Tanming, if you're using a source code distribution of Zope you can change the definition of class 'record' in ZPublisher/HTTPRequest.py to the following: class record: def __getattr__(self, key, default=None): if key in ('get', 'keys', 'items', 'values', 'copy', 'has_key'): return getattr(self.__dict__, key) raise AttributeError, key def __getitem__(self, key): return self.__dict__[key] def __str__(self): L1 = self.__dict__.items() L1.sort() return join(map(lambda item: "%s: %s" %item, L1), ", ") __repr__ = __str__ Cheers, Evan @ digicool & 4-am