The following code uses: 1) a computed field 2) a self reference 3) a virtual field
>>> db.define_table('a',Field('x'),Field('y','reference
>>> a'),Field('z',compute=lambda row: row['x']*3))
>>> class A:
>>> def t(self): return len(self.a.z)
>>> db.a.virtualfields.append(A())
>>> r=db.a.insert(x='hello')
>>> r.update_record(x=r.x,y=r)
>>> print a.y.y.y.y.t
15
Can you explain how it works?

