You may want to look at the _filter_fields

Look at web2py slices; this way you can pass a dict and it updates with the relevant fields/


On 7/11/11 10:38 AM, mart wrote:
Hi Denes,

Thanks for the great explanation! now, its making sense to me!!

I'll apply the changes below

Thanks :)
Mart :)


On Jul 11, 9:34 am, DenesL<denes1...@yahoo.ca>  wrote:
Hi Mart,

to be able to use the key in the update you have to pass it in a dict.
I would do:

id=db.local_user.insert(dateTime=datetime.now())
# you seem to be updating one rec only
rec = db(db.local_user.id==id)
for key,value in localUserDict.items():
   if key in db.local_user.fields:
     rec.update(**{key:value})
db.commit() # after all updates are in

or using a comprehension:

id=db.local_user.insert(dateTime=datetime.now())
# you seem to be updating one rec only
rec = db(db.local_user.id==id)
[rec.update(**{key:value}) for key,value in localUserDict.items() if
key in db.local_user.fields]
db.commit() # after all updates are in

Denes.

On Jul 10, 11:55 pm, mart<msenecal...@gmail.com>  wrote:







Hi,
shouldn't something lik this work? or maybe i'm missing something for
passing in a variable for a field name?
         id=db.local_user.insert(dateTime=datetime.now())
         for key in localUserDict.keys():
             for field in db.local_user.fields:
                 if field==key:
db(db.local_user.id==id).update(field=localUserDict[key])
                     db.commit()
the exception is of course that the Field field does not belong to the
local_user table
Thanks,
Mart :)

Reply via email to