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.