When an error occurs with a form submission, the form should be
re-displayed with an error message attached to the field that caused the
error. Where is the error being displayed? I notice you have
db.auth_user.registration_id.requires = IS_NOT_IN_DB(...). If the
registration_id field is left empty, that would cause the error in
question. Note, I don't think you need that validator for the
registration_id field (it is not included in the standard auth_user table
definition in Auth). Try removing that line.
Anthony
On Wednesday, January 4, 2012 11:13:53 AM UTC-5, OpenMercury wrote:
>
> I get it on any field. As soon as I hit submit, I get that error and
> no updating takes place.
> Here is my model db.py:
>
> from gluon.tools import Auth, Crud, Service, PluginManager, prettydate
> auth = Auth(db, hmac_key=Auth.get_or_create_key())
> crud, service, plugins = Crud(db), Service(), PluginManager()
>
> ## create all tables needed by auth if not custom tables
>
> ########################################
> db.define_table('auth_user',
> Field('username', type='string',
> label=T('Username')),
> Field('first_name', type='string',
> label=T('First Name')),
> Field('last_name', type='string',
> label=T('Last Name')),
> Field('email', type='string',
> label=T('Email')),
> Field('password', type='password',
> readable=False,
> label=T('Password')),
> Field('created_on','datetime',default=request.now,
> label=T('Created On'),writable=False,readable=False),
> Field('modified_on','datetime',default=request.now,
> label=T('Modified On'),writable=False,readable=False,
> update=request.now),
> Field('registration_key',default='',
> writable=True,readable=False),
> Field('reset_password_key',default='',
> writable=False,readable=False),
> Field('registration_id',default='',
> writable=False,readable=False),
> format='%(username)s',
> migrate=settings.migrate)
>
>
> db.auth_user.first_name.requires =
> IS_NOT_EMPTY(error_message=auth.messages.is_empty)
> db.auth_user.last_name.requires =
> IS_NOT_EMPTY(error_message=auth.messages.is_empty)
> db.auth_user.password.requires = CRYPT(key=auth.settings.hmac_key)
> db.auth_user.username.requires = IS_NOT_IN_DB(db,
> db.auth_user.username)
> db.auth_user.registration_id.requires = IS_NOT_IN_DB(db,
> db.auth_user.registration_id)
> db.auth_user.email.requires =
> (IS_EMAIL(error_message=auth.messages.invalid_email),
> IS_NOT_IN_DB(db, db.auth_user.email))
> auth.define_tables(migrate = settings.migrate)
>
>
> On Jan 4, 9:27 am, Anthony <[email protected]> wrote:
> > I cannot reproduce this problem. Do you get the "value already in
> database
> > or empty" message specifically on the registration_key field, or on the
> > email or username field? Have you set any validators for
> > db.auth_user.registration_key (you can check by printing
> > db.auth_user.registration_key.requires)?
> >
> > Anthony
> >
> >
> >
> >
> >
> >
> >
> > On Wednesday, January 4, 2012 8:48:29 AM UTC-5, OpenMercury wrote:
> >
> > > Hi,
> >
> > > I'm using the basic scaffolding app and have set it up so new users
> > > need to be approved to use the application.
> > > I'm registered and there is an entry in auth_user table. The
> > > registration key field value is 'Pending'. From reading the docs, all
> > > I should have to do is blank out the registration key field. I'm
> > > trying to do that via appAdmin and editing the current record. When I
> > > blank out registration key field and hit 'submit' I get the message
> > > "value already in database or empty". What am I doing wrong
> or is
> > > this a bug?
> >
> > > Thanks Scott