In the book it says
"And you can update all records in a set by passing named arguments
corresponding to the fields that need to be updated:
update
1.
>>> db(db.person.id > 3).update(name='Ken')
Expressions
The value assigned an update statement can be an expression. For example
consider this model
1.
2.
3.
4.
5.
>>> db.define_table('person',
Field('name'),
Field('visits', 'integer', default=0))
>>> db(db.person.name == 'Massimo').update(
visits = db.person.visits + 1)
"
*def update():
db(db.clubs).update(postcode=db.clubs.postcode)*
*
*
*Where postcode is simply **Field('postcode') and already has a value.*
*
*
*I am doing this because I want a 'compute' field that uses the postcode to
calculate*
*
*
*What I find is that postcode does not get updated to the value it already
contains, but gets updated to 'clubs.postcode'.*
*This does not seem consistent with the book.*
*I know I could do a loop and update_record, but this seems to do a commit on
each update_record, and therefore take a lot longer than*
*if I can do it in one update.*
*
*
*
*
*Peter*
*
*
*
*
*
*