Hello all,

I have a pretty peculiar problem, and I hope there's an elegant solution 
somewhere.

Lets say I have a table named X with 5 integer fields x0, x1, x2. I want to 
update the fields in some rows, doing something like

db(query).update(db.X.x0= 10)
db(query).update(db.X.x1= 10)
db(query).update(db.X.x2= 10)

This is pretty easy. However, in reality I have around 200 fields, which 
makes it impractical to write a line for each field. So I tried to iterate 
over the fields. I can't seem to find an elegant way to do it, and the only 
way that seems to work is quite convoluted:

for i in range(3):
    db(query).update(**{db.X['x'+str(i)].name:10})

This, quite surprisingly, works. However, with this approach I cannot use 
an expression in the value of the update. That is, I can't write the 
equivalent to 

db(query).update(db.X.x2= db.X.x2+10)

which would be

for i in range(3):
    db(query).update(**{db.X['x'+str(i)].name: db.X['x'+str(i)].name+10})

any help will be much appreciated.

-- 
Resources:
- http://web2py.com
- http://web2py.com/book (Documentation)
- http://github.com/web2py/web2py (Source code)
- https://code.google.com/p/web2py/issues/list (Report Issues)
--- 
You received this message because you are subscribed to the Google Groups 
"web2py-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/groups/opt_out.

Reply via email to