If you just do this it should do what you ask:
db.define_table('target',
Field('name', required=True),
Field('address', required=True),
Field('comment', default=''), format='%(name)s')
db.define_table('pac',
Field('name', required=True),
Field('comment', default=''),
Field('default_target', db.target),
Field('owner_id', db.auth_user),format='%(name)s')
db.define_table('target2pac',
Field('pac_id', db.pac, required=True),
Field('target_id', db.target, required=True, unique=True))
OR
db.target2pac.target_id.requires = IS_IN_DB(db,'target.id','%
(name)s',_and=IS_NOT_IN_DB(db,db.target2pac.target_id))
On Nov 25, 5:12 pm, ramazotto <[email protected]> wrote:
> Hi,
>
> I have a problem with displaying a table id as a dropdown list in a
> form. Database looks like that:
>
> db.define_table('target',
> Field('name', required=True),
> Field('address', required=True),
> Field('comment', default=''), format='%(name)s')
>
> db.define_table('pac',
> Field('name', required=True),
> Field('comment', default=''),
> Field('default_target', db.target),
> Field('owner_id', db.auth_user))
>
> db.define_table('target2pac',
> Field('pac_id', db.pac, required=True),
> Field('target_id', db.target, required=True))
>
> ....
>
> db.target2pac.pac_id.requires = IS_IN_DB(db, db.pac.id, '%(name)s')
> db.target2pac.target_id.requires = IS_NOT_IN_DB(db,
> db.target2pac.target_id)
>
> The problem is the last line, whenever I add this line, the
> "db.target2pac.target_id" field in a form is not shown as a dropdown
> list anymore, but as a normal text field. Any idea?
>
> Regards,
> Klaus.