If I understand it properly you need : IS_EMPTY_OR(IS_IN_DB(...))
Richard On Mon, Jan 18, 2016 at 3:17 PM, Ron Chatterjee <achatterjee...@gmail.com> wrote: > I have a different problem with similar table/field. I have a reference to > auth_user. But I want the table to work even it doesn't assign any user. > But if I don't pick any auth_user from the drop down menu (assign to) I get > an error (attached), value not in a database. And I get the error even > when I delete: > > requires=IS_IN_DB(db,db.auth_user.id) > > Here is my table. > > import os > db.define_table("Project", > Field("Title", "string", label='Project Title', > requires=IS_NOT_EMPTY(),default=None), > Field("filename", "upload", default=None, > uploadfolder=os.path.join(request.folder, 'uploads')), > Field("Description", "text", label='Project Description', > requires=IS_NOT_EMPTY(),default=None), > Field("Project_budget", "integer", label='Project Budget > $', default=None), > Field("start_date", "datetime", default=request.now, > readable = False, writable=False), > Field("finish_date", "datetime", label='Project Due Date', > default=None), > Field("asigned_to",'reference auth_user', > widget=SQLFORM.widgets.options.widget, requires=IS_IN_DB(db, > db.auth_user.id)), > auth.signature) > > > Any thoughts? > > > On Monday, January 18, 2016 at 2:52:58 PM UTC-5, Richard wrote: >> >> You should use field .clone() method instead of redefining fields... >> >> For represent the user_id by it username, you should specify the >> represent field like this in your IS_IN_DB() validator : >> >> IS_IN_DB(db,db.auth_user.id, '%(username)s') >> >> Richard >> >> On Wed, Jan 13, 2016 at 7:36 PM, Tom Campbell <tomca...@gmail.com> wrote: >> >>> >>> >>> On Wednesday, January 13, 2016 at 3:38:56 PM UTC-8, Tom Campbell wrote: >>>> >>>> Creating a custom form that relates first name and last name fields to >>>> the db.auth_user's user_id field. In the form below the user ID shows as an >>>> integer in the dropdown but I'd like it to show as the user's name. How do >>>> I do that? >>>> >>>> form = SQLFORM.factory( >>>> >>>> Field('first_name', requires=IS_NOT_EMPTY()), >>>> Field('last_name', requires=IS_NOT_EMPTY()), >>>> Field('user_id', 'reference auth_user', >>>> requires=IS_IN_DB(db,db.auth_user.id)), >>>> fields=['first_name', 'last_name', 'user_id'], >>>> ) >>>> >>>> I also tried this, but it sill displayed as an integer: >>> Field('user_id', 'reference auth_user', >>> widget=SQLFORM.widgets.options.widget, requires=IS_IN_DB(db, >>> db.auth_user.id)), >>> >>> >>> -- >>> 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 web2py+un...@googlegroups.com. >>> For more options, visit https://groups.google.com/d/optout. >>> >> >> -- > 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 web2py+unsubscr...@googlegroups.com. > For more options, visit https://groups.google.com/d/optout. > -- 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 web2py+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.