I have the same problème and in that poste : https://groups.google.com/forum/?fromgroups#!topic/web2py/RmdCe7xp5gM[1-25] it say that it's possible to do so but in my test application it's not. As you say on insertion the id is not avaaillable yet and that is the raison I think.
If somme body have a solution, please give as a sample of code. On Monday, August 6, 2012 12:14:52 AM UTC, Rob_McC wrote: > > > . I created a simple app, with only this in it, > . I can get computed field to work , but never referencing the id field. > > I think the trouble is that 'id' is never updated, so it is not available > for compute= . > I don't think I can do this when the record is first created, since an > 'id' has not been assigned. > > I want to eventually add another field that depends on 'id' that is why > I'm doing this. > > I could use a virtual field I think... > > Thanks > Rob > > > > > > ## after auth = Auth(db) > auth.settings.extra_fields['auth_user']= [ > Field('address'), > Field('city'), > Field('zip'), > Field('phone'), > Field('ref_number', compute=lambda r: r['city'])] > > > # this WORKS > # Field('ref_number', compute=lambda r: r['city'])] > > > # this DOES NOT WORK > # Field('ref_number', compute=lambda r: r['id'])] > # Field('ref_number', 'integer', compute=lambda r: r['id'])] > > > # before auth.define_tables(username=True) > > > ## create all tables needed by auth if not custom tables > auth.define_tables() > > --