Thanks, that did the trick. On Wed, Aug 1, 2012 at 1:21 AM, Cliff Kachinske <cjk...@gmail.com> wrote:
> You need the other form of update_or_insert:. This is covered in the > manual. I always encourage people to Read The Fine Manual (RTFM) to gain a > good understanding what's going on. > > > db.person.update_or_insert(db.person.name=='John', > name='John',birthplace='Chicago') > > or > > db.foo.update_or_insert(db.foo.user_id==1, haz='c', user_id=1) > > > On Tuesday, July 31, 2012 11:10:36 AM UTC-4, Alec Taylor wrote: >> >> I want only one value stored per unique user, but using the >> `update_or_insert()` function is storing multiple values: >> >> db.define_table( >> 'foo', >> Field('haz', notnull=True, unique=True, requires=IS_IN_SET(['a', 'b', >> 'c'])), >> Field('user_id', db.auth_user, unique=True)) >> >> db.foo.update_or_insert(haz='**a', user_id=1) >> db.foo.update_or_insert(haz='**b', user_id=1) >> db.foo.update_or_insert(haz='**c', user_id=1) >> >> >> It should only have one record at the end of this, with haz='c' and >> user_id=1. Instead, it provides 3 records. >> >> How do I get this to work properly? >> >> Thanks for all suggestions, >> >> Alec Taylor >> > -- > > > > --