Am Sonntag, den 05.06.2005, 00:05 -0500 schrieb Edward Huixquic: > Thanks Dieter for your kind reply, > > Here is a complete (a bit long, sorry for that) example of what is > happening, here are some code pieces that shows this behavior: > > DTML: > -------------------------------------------------- > <HTML> > <BODY> > <dtml-if process > > <dtml-in fields mapping> > <dtml-call "pyUpdate(REQUEST)"> > <dtml-var balance> > </dtml-in> > <dtml-var REQUEST> > </dtml-if> > <form name="input_form" "./test1"> > Name: <input type="text" name="fields.name:records" value="Mickey"><br> > Lastname:<input type="text" name="fields.lastname:records" value="Mouse"><br> > Account Balance:<input type="text" name="fields.balance:records" > value="1000"><br> > <br><br> > Name: <input type="text" name="fields.name:records" value="Donald"><br> > Lastname:<input type="text" name="fields.lastname:records" value="Duck"><br> > Account Balance:<input type="text" name="fields.balance:records" > value="2000"><br> > <input type="submit" value="process" name="process"> > </form> > </BODY> > </HTML> > ---------------------------------------------- > Python External Method: > def pyUpdate(self,REQUEST): > for item in range(len(self.REQUEST['fields'])): > self.REQUEST['x']=self.REQUEST['fields'][0] > self.REQUEST['y']=self.REQUEST['fields'][1] > # self.REQUEST['fields'][0]['balance']=5000 <-----I will > refer to this as first line > # self.REQUEST['y']['balance']=5000 <-------- this would > be the second line > return self.REQUEST > ------------------------------------------- > Output of form after pressing the "process" button WITH both lines > commented out in the External method, as show above (cut from the > whole REQUEST output): > > 1000 2000 > form > process 'process' > fields [{'balance': '1000', 'lastname': 'Mouse', 'name': 'Mickey'}, > {'balance': '2000', 'lastname': 'Duck', 'name': 'Donald'}] > <cut stuff> > fields [{'balance': '1000', 'lastname': 'Mouse', 'name': 'Mickey'}, > {'balance': '2000', 'lastname': 'Duck', 'name': 'Donald'}] > y {'balance': '2000', 'lastname': 'Duck', 'name': 'Donald'} > x {'balance': '1000', 'lastname': 'Mouse', 'name': 'Mickey'} > > So, fields behaves as a list and X and Y are dictionaries, right?
No. They look like dictionaries, but they are not dictionaries. You used :records, which gives you lists of record objects. You can copy to a real dictionary to do what you want. _______________________________________________ Zope maillist - Zope@zope.org http://mail.zope.org/mailman/listinfo/zope ** No cross posts or HTML encoding! ** (Related lists - http://mail.zope.org/mailman/listinfo/zope-announce http://mail.zope.org/mailman/listinfo/zope-dev )