It seems make sense. But what I did was following the guide of the "Web2Py"
book written by the web2py author.
Why all response's messages have to be sent to response.flash? I have a
message bar in the view where I get the messages by using
{{response.message}} which will disapear in 3 seconds.
I'll try by following your advice. I'll let you know as soon as it works.
Thank you!

2009/7/18 DenesL <denes1...@yahoo.ca>

>
> Hi Artman,
>
> On Jul 18, 8:02 am, 陶艺夫 <artman...@gmail.com> wrote:
> > the table:
> > db.define_table('users',
> >     SQLField('user_name','string',required=True,unique=True),
> >     SQLField('password','password',length=80,required=True),
> >     SQLField('town_id','integer'), # this can be NULL
> >     SQLField('name','string',required=True),
> >     SQLField('gender',requires=IS_IN_SET(['male','female'])),
> >     SQLField('telephone','string'),
> >     SQLField('cellphone','string'),
> >     SQLField('grade','integer',default=3) #user's grade, 1-admin 2-normal
> > 3-viewer
> >     )
> >
> > the action:
> > def add_user():
> >    ...
> >     # print response.vars I CAN see the storage returned contains the
> > correct information .
> >     form=form(db.users,formname=None):
> >     if form.accepts(request.vars,session):
> >         response.message='User added!'
> >     elif form.errors:
> >         response.message='There are some errors when adding user to the
> > database!'
> >     else:
> >         response.message='Please filling the form.'
> >     return dict()
> >
> > the view:
> >     ....
> >     <input type="text" id='users_user_name' name='user_name' value=''/>
> >    ...
> >    <select id="users_grade" name="grade">
> >    <option value='1'> admin</option>
> >    ...
> >    </select>
> >    ....
> >
> > Thank Massimo for your GREAT work! :)
> >
>
> you have several errors in the the action (in fact it won't even run
> as shown) but the main problem is in the view, you don't have the
> form's hidden fields so the accepts will always fail. To fix do:
>
> In the action change:
> 1) form=form(...) to form=SQLFORM(...)
> 2) all response.message to response.flash
> 3) return dict() to return dict(h=form.hidden_fields())
>
> In the view add:
> {{=h}}
> somewhere inside your custom form,
> that will create the required hidden fields.
>
> If you have the book look up "hidden fields".
>
> Denes.
>
>
> >
>

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"web2py-users" group.
To post to this group, send email to web2py@googlegroups.com
To unsubscribe from this group, send email to 
web2py+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/web2py?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to