I would use the autocomplete widget. If you really want a text input and a
combo box I would probably do a custom widget. Here's a full example using
the autocomplete widget, this solution uses the welcome app with this added
to db.py before auth.define_tables(username=False, signature=False)
db.define_table('organization',
Field('name', requires=IS_NOT_EMPTY())
)
auth.settings.extra_fields['auth_user'] = [
Field('organization', 'reference organization', widget=SQLFORM.widgets.
autocomplete(request, db.organization.name, id_field=db.organization.id))
]
def add_organization(form):
"""
Adds an organization if it doesn't exist, validates all fields.
"""
if not form.vars.organization:
ret = db.organization.validate_and_insert(name=form.vars.
_autocomplete_organization_name_aux)
if ret.errors:
form.errors.organization = ret.errors['name']
else:
form.vars.organization = ret.id
else:
output, error = IS_IN_DB(db, db.organization.id)(form.vars.
organization)
if error is not None:
form.errors.organization = error
auth.settings.register_onvalidation = add_organization
--
Resources:
- http://web2py.com
- http://web2py.com/book (Documentation)
- http://github.com/web2py/web2py (Source code)
- https://code.google.com/p/web2py/issues/list (Report Issues)
---
You received this message because you are subscribed to the Google Groups
"web2py-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
For more options, visit https://groups.google.com/d/optout.