The error is here:
if form.accepts(request.vars,session):
because of this
form=SQLFORM.factory(
db.auth_group,
db.auth_membership,
db.auth_permission,
)
you need to list explicitly the fields you want to show, else it will
try validate the group_id of db.auth_membership which referes to a
group that has not been created yet.
On Nov 2, 2:37 am, weheh <[email protected]> wrote:
> #################
> # controller
> #################
> @auth.requires_login()
> def groups():
> #-------------------------------------------------------------------------------
> # create form
> db.auth_group.role.requires=[IS_NOT_IN_DB
> (db,'auth_group.role'),IS_NOT_EMPTY()]
> form=SQLFORM.factory(
> db.auth_group,
> db.auth_membership,
> db.auth_permission,
> )
>
> # update db
> if form.accepts(request.vars,session):
> user_id=auth.user.id
> group_id=auth.add_group(form.vars.role,form.vars.description)
> membership_id=auth.add_membership(group_id,user_id)
> auth.add_permission(group_id,'create','auth_group',group_id)
> auth.add_permission(group_id,'read','auth_group',group_id)
> auth.add_permission(group_id,'update','auth_group',group_id)
> auth.add_permission(group_id,'delete','auth_group',group_id)
> auth.add_permission(group_id,'select','auth_group',group_id)
> session.flash=DIV(T('Created new group '),'"%s"'%form.vars.role,
> _class='info')
> redirect(URL(r=request,c='default',f='groups'))
> elif form.errors:
> response.flash=DIV(T('Error: did not create new
> group'),_class="error")
>
> # return
> return dict(form=form)
>
> ######################
> # view
> ######################
> {{
> def create_group():
> return DIV(
> form.custom.begin,
> DIV(
> TABLE(
> TR(
> TH(T('Group Name:')),
> TD(form.custom.widget.role),
> ),
> TR(
> TH(form.custom.label['description']),
> TD(form.custom.widget.description),
> ),
> TR(
> TH(form.custom.label['image']),
> TD(form.custom.widget.image),
> ),
> TR(
> TH(form.custom.label['access']),
> TD(form.custom.widget.access),
> ),
> TR(
> TH(form.custom.label['post']),
> TD(form.custom.widget.post,T('Allow members to post
> audio')),
> ),
> TR(
> TH(),
> TD(form.custom.submit),
> ),
> _align='center',
> ),
> _class='outer-box',
> ),
> form.custom.end
> )
>
> pass
>
> }}
>
> <h1>Group Entry Form</h1>
> {{=create_group()}}
> <h1>Errors</h1>
> {{=form.errors}}
>
> ------------------
>
> this produces the following error:
>
> <Storage {'group_id': 'value not in database!', 'user_id': 'value not
> in database!'}>
>
> What am I missing?
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups
"web2py-users" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/web2py?hl=en
-~----------~----~----~----~------~----~------~--~---