i don't see a {{=form.custom.begin}} in your view. this is required to
output the hidden fields that web2py uses to validate the form submission.
On Wednesday, January 2, 2013 8:03:47 AM UTC-8, ajith c t wrote:
>
> This is my form and controller function. My problem is nothing happens
> (redirection) after the register button is clicked.
>
> def myregister():
> "select all roles greater than 1. root is always 1 "
> print "in myregister"
>
> form = auth.register(next='index')
>
> print form.vars
> return dict(form = form)
>
> the above is my custom "myregister()" function.
>
> {{extend 'layout.html'}}
> <h1>This is the default/myregister.html template</h1>
>
> <form action="" enctype="multipart/form-data" method="post"
> class="form-horizontal">
>
> username:
> {{=form.custom.widget.username}}
> email:
> {{=form.custom.widget.email}}
>
> password:
> {{=form.custom.widget.password}}
> confirm password:
> {{=form.custom.widget.password_two}}
>
> account_id:
> {{=form.custom.widget.account_id}}
>
> role_id:
> {{=form.custom.widget.role_id}}
>
> {{=form.custom.submit}}
>
>
> {{=form.custom.end}}
> {{pass}}
>
> above code is my custom register view "myregister.html"
>
> i am using auth_user table after adding extra fields:
>
> auth.settings.extra_fields['auth_user']= [
> Field('account_id', 'integer', notnull=True), # (`account_id` int(11)
> NOT NULL,)
> Field('organisation_id', 'integer'), # (`organisation_id`
> int(11) DEFAULT '0',)
> Field('role_id', 'integer', notnull=True, requires = IS_IN_SET([(2,
> 'admin'), (3, 'merchant'), (4, 'guest')])), # (`role_id` int(11) NOT NULL
> DEFAULT '0',)
> Field('username', 'string'), # (`username` varchar(64)
> COLLATE utf8_bin DEFAULT NULL,)
> Field('telephone', 'string'), # (`telephone` varchar(16)
> COLLATE utf8_bin DEFAULT NULL,)
> Field('mobile', 'string'), # (`mobile` varchar(16)
> COLLATE utf8_bin DEFAULT NULL,)
> Field('gender', 'string'), # (`gender` char(1) COLLATE
> utf8_bin DEFAULT NULL,)
> Field('about', 'text'), # (`about` text COLLATE
> utf8_bin,)
> Field('addr_1', 'string'), # (`addr_1` varchar(128)
> COLLATE utf8_bin DEFAULT NULL,)
> Field('addr_2', 'string'), # (`addr_2` varchar(128)
> COLLATE utf8_bin DEFAULT NULL,)
> Field('addr_3', 'string'), # (`addr_3` varchar(128)
> COLLATE utf8_bin DEFAULT NULL,)
> Field('city', 'string'), # (`city` varchar(64)
> COLLATE utf8_bin DEFAULT NULL,)
> Field('region', 'string'), # (`region` varchar(32)
> COLLATE utf8_bin DEFAULT NULL,)
> Field('country', 'string'), # (`country` char(2)
> COLLATE utf8_bin DEFAULT NULL,)
> Field('post_code', 'string'), # (`post_code` varchar(16)
> COLLATE utf8_bin DEFAULT NULL,)
> Field('is_email_public', 'integer'), # (`is_email_public`
> smallint(6) DEFAULT NULL,)
> Field('is_acct_active', 'integer'), # (`is_acct_active`
> smallint(6) DEFAULT NULL,)
> Field('security_question', 'integer'), # (`security_question`
> smallint(6) DEFAULT NULL,)
> Field('security_answer', 'string'), # (`security_answer`
> varchar(128) COLLATE utf8_bin DEFAULT NULL,)
> Field('date_created', 'datetime'), # (`date_created` datetime
> DEFAULT NULL,)
> Field('created_by', 'integer'), # (`created_by` int(11)
> DEFAULT NULL,)
> Field('last_updated', 'datetime'), # (`last_updated` datetime
> DEFAULT NULL,)
> Field('updated_by', 'integer')
>
> ]
>
> auth.settings.registration_requires_verification = False
> auth.settings.registration_requires_approval = False
> auth.settings.reset_password_requires_verification = True
> auth.settings.login_after_registration = True
> auth.settings.create_user_groups = False
>
> def onaccept(form): # form accepted
> auth.add_membership(form.vars.role_id, form.vars.id)
>
> auth.settings.register_onaccept.append(onaccept)
>
>
> I dont know what is going wrong.
> I have gone through similar questions in this forum but could solve this.
> any help would be appreciated
>
--