Did this <http://stackoverflow.com/a/28585704/440323>solve your problem?
On Wednesday, February 18, 2015 at 5:07:02 AM UTC-5, Smruti Prakash Mohanty
wrote:
>
> Hi
>
> I am using the web2py default auth table for user registration.
>
> I am having an additional table defined as such:
>
> db.define_table('nsksystem',
> Field('email_id', db.auth_user,length=512, label = 'Email
> ID'),
> Field('nskname', length=128, default='', label = 'Machine
> Name'),
> Field('nskpassword', 'password',
> length=512,readable=False, label='Machine Password'),
> Field('confirmnskpassword', 'password',
> length=512,readable=False, label='Confirm Machine Password'),
> Field('nreleaseid',length=128, default='',label =
> 'Release'),
> Field('isCordinator','boolean',default='', label = 'Is
> Co-ordinator'))
>
>
> db.nsksystem.email_id.requires =
> IS_NOT_EMPTY(error_message=auth.messages.is_empty)
> db.nsksystem.email_id.requires = IS_IN_DB(db,'auth_user.email','%(email)s')
> db.nsksystem.nreleaseid.requires =
> IS_NOT_EMPTY(error_message=auth.messages.is_empty)
> db.nsksystem.nskname.requires =
> IS_NOT_EMPTY(error_message=auth.messages.is_empty)
> db.nsksystem.confirmnskpassword.requires = IS_EXPR('value==%s' %
> repr(request.vars.get('nskpassword', None)),error_message='Passwords do not
> match')
> db.nsksystem.isCordinator.requires=IS_NOT_IN_DB(db(db.nsksystem.nreleaseid
> == request.vars.nreleaseid), 'nsksystem.isCordinator',
> error_message='Co-ordinator Already exist for specified release')
>
> In my Controller:
>
> def uregistration(): ##---> For my user registration
> form=SQLFORM(db.auth_user)
> if form.process().accepted:
> response.flash = 'User is registered. Redirecting to machine
> registration'
> redirect(URL('mregistration')) #-> After registration it goes
> to another page for machine registration.
> elif form.errors:
> response.flash = 'Form has errors'
> else:
> response.flash = 'Please fill out the form'
> return dict(form=form)
>
>
> def mregistration(): ##---> for machine registration page
> form=SQLFORM(db.nsksystem)
> if form.process().accepted:
> response.flash = 'Machine is registered to user. Please go to
> Login page.'
> redirect(URL('index'))
> elif form.errors:
> response.flash = 'Form has errors'
> else:
> response.flash = 'Please fill out the form'
> return dict(form=form)
>
> Now after I have registered the user, i am being redirected to Machine
> registration page. After i enter all the details in Machine registration
> page I get this error:
>
> Traceback (most recent call last):
> File "gluon/restricted.py", line 224, in restricted
> File "C:/web2py/applications/click/controllers/default.py"
> <http://127.0.0.1:8000/admin/default/edit/click/controllers/default.py>, line
> 63, in <module>
> File "gluon/globals.py", line 393, in <lambda>
> File "C:/web2py/applications/click/controllers/default.py"
> <http://127.0.0.1:8000/admin/default/edit/click/controllers/default.py>, line
> 30, in mregistration
> if form.process().accepted:
> File "gluon/html.py", line 2303, in process
> File "gluon/html.py", line 2240, in validate
> File "gluon/sqlhtml.py", line 1677, in accepts
> File "gluon/dal/objects.py", line 724, in insert
> File "gluon/dal/adapters/base.py", line 715, in insert
> IntegrityError: foreign key constraint failed
>
> Error snapshot <class 'sqlite3.IntegrityError'>(foreign key constraint
> failed)
> Function argument list
>
> (self=<gluon.dal.adapters.sqlite.SQLiteAdapter object>,
> table=<Table nsksystem
> (id,email_id,nskname,nskpassword,confirmnskpassword,nreleaseid,isCordinator)>,
> fields=[(<gluon.dal.objects.Field object>, '123456'),
> (<gluon.dal.objects.Field object>, 'vodka.ind.codefactory.com'),
> (<gluon.dal.objects.Field object>, 0),
> (<gluon.dal.objects.Field object>, True),
> (<gluon.dal.objects.Field object>, 'AAA'),
> (<gluon.dal.objects.Field object>, '123456')])
>
>
> I wonder why i dont see the email address that i select in the machine
> registration page. (<gluon.dal.objects.Field object>, 0) in the Function
> argument list refers to email id or only ID.
>
> I am confused. Unfortunately i cant turn the constraint validation off as it
> is a requirement.
>
>
--
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.