Good point. Perhaps the _and solution is not a good one. On Jan 10, 7:59 am, Jeff Bauer <[email protected]> wrote: > Working from changeset 94:4fd248d09b52, the unique column is > enforced, but the dropdown is missing. It is replaced by a > text (string) entry field. If I add the following code to > db.py, the dropdown reappears: > > db.socdiag.socform.requires = \ > IS_IN_DB(db, 'socform.id', > _and=IS_NOT_IN_DB(db, 'socdiag.socform')) > > However, with the above code, I was expecting only valid > id's (unused) to show appear in the dropdown. Instead ALL > socform.id's appear. > > In any case the suggestion to add: _and=IS_NOT_IN_DB(... > to enforce integrity solves my immediate issue. Thanks. > > -Jeff > > On 01/10/2010 12:22 AM, mdipierro wrote: > > > Try this again with the code in trunk. assuming you have a format > > > db.define_table('socform',...,format="....") > > > you will get a default validator > > > db.docfiag.socform.requires=IS_IN_DB(....,_and=IS_NOT_IN_DB(...)) > > > that will make both the dropdown and the reference unqueness enforced > > by the validator. > > > On Jan 9, 5:30 pm, Jeff Bauer<[email protected]> wrote: > >> I'm trying to enforce a one-to-one relationship between > >> tables socdiag and socform with unique: > > >> db.define_table('socdiag', > >> Field('socform', db.socform, unique=True), > > >> However the socdiag table permits multiple values of the > >> same socform's id to occur in the socform column. I'm using > >> sqlite. > > >> Jeff Bauer > >> Rubicon, Inc. > >
-- You received this message because you are subscribed to the Google Groups "web2py-users" group. To post to this group, send email to [email protected]. To unsubscribe from this group, send email to [email protected]. For more options, visit this group at http://groups.google.com/group/web2py?hl=en.

