> >>> db=DAL()
> >>> db.define_table('xxx',Field('yyy',writable=False,readable=False))
> >>> db.xxx.yyy.default=lambda: 'hello world'
> >>> db.xxx.insert()
> 1
> >>> print db.xxx(1).yyy
>
> hello world
>
> default can be a lambda.
If I do this inside db.py, then the database administration system
inside admin shows this under my field when inserting a new record in
the admin UI:
<function <lambda> at 0x0B4C14B0>
And it also shows this in my field after insertion, when viewing the
contents of the table. This is on 1.89.3. Either my behaviour is
different to yours, or there is something fundamental that I
misunderstand about how the admin database administration UI works.