The problem is that it cannot assign the default validator unless the table is defined. You can do
db.define_table('t_project', Field('f_name', type='string', label=T('Name')), Field('f_parent_project', type='reference t_project', label=T('Parent Project')), .... format='%(f_name)s', migrate=settings.migrate) db.t_project.f_name.requires = IS_EMPTY_OR(IS_IN_DB(db,'t_project.id',format=db.t_project._format)) The last line will restore the dropdown. On Wednesday, 28 November 2012 14:39:14 UTC-6, Jim S wrote: > > I'm seeing this as well. > > -Jim > > > On Tuesday, November 27, 2012 12:09:18 PM UTC-6, Luc Chase wrote: >> >> If the reference is to a different table, the CRUD form renders the field >> as a list box allowing the user to select the record from the foreign >> table. But as a self-join the CRUD form renders the field as a simple text >> box and it seems to create a default value of 0 when saved. Then, I think >> that causes the record to generate an error when viewed ( but not when >> edited). >> >> >> I can post the entire models file if that would help. >> > --