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<jeffru...@gmail.com> 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 web...@googlegroups.com.
To unsubscribe from this group, send email to
web2py+unsubscr...@googlegroups.com.
For more options, visit this group at
http://groups.google.com/group/web2py?hl=en.