I figured it out, but its not the most pythonic way of doing things. I had
to specify db.users['dictKey'].default = request.vars['dictKey] for all 20
fields.
Again it works, just not sure why the for loop was throwing it off. Thanks
so much for your help, Richard!!
On Monday, May 5, 2014 12:27:16 PM UTC-4, LoveWeb2py wrote:
>
> I created a clean function and removed the "for f, v in
> request.vars.iteritems():db.users[f].default = v" and the form works fine
> and properly redirects upon submit. So it has to be something with the for
> loop?
> def transition_form():
> form = SQLFORM(db.users)
> response.vars = ''
> if form.process().accepted:
> response.flash = 'form accepted'
> redirect(URL('users_list'))
> elif form.errors:
> response.flash = 'errors on page'
> else:
> response.flash = 'facepalm'
>
> return dict(form=form)
>
> On Monday, May 5, 2014 12:21:29 PM UTC-4, LoveWeb2py wrote:
>>
>> I tried adding
>> def transition_form():
>> for f, v in request.vars.iteritems():
>> db.users[f].default = v
>> form = SQLFORM(db.users)
>> response.vars = ''
>> if form.process().accepted:
>> response.flash = 'form accepted'
>> redirect(URL('users_list'))
>> elif form.errors:
>> response.flash = 'errors on page'
>> else:
>> response.flash = 'facepalm'
>>
>> return dict(form=form)
>>
>> but the same issue of 'Table' object has no attribute '_formkey' still
>> exist. I checked with firebug and the _formkey is under hidden values so it
>> is posting, but for some reason the page isn't picking it up...
>>
>> On Monday, May 5, 2014 12:12:29 PM UTC-4, Richard wrote:
>>>
>>> You got 'facepalm' because it's not process the form when you get
>>> redirected... Since you don't redirect once the form get accepted and
>>> process web2py return the same function once the form validate and get
>>> process. Now maybe you should delete the request.vars once you have assign
>>> them as default value... An other issue maybe related to the fact that your
>>> vars names are the same of form.vars... I had issue with name collision in
>>> the pass deleting the request.vars after iteratio on it may help.
>>>
>>> Richard
>>>
>>>
>>> On Mon, May 5, 2014 at 11:57 AM, LoveWeb2py <[email protected]> wrote:
>>>
>>>> Controllers:
>>>> @auth.requires_login()
>>>> def users_list():
>>>> grid=SQLFROM.smartgrid(db.users, paginate=20,
>>>> links_placement='left',
>>>> links=[dict(header='', body=lambda row: A(I(_class='icon
>>>> retweet icon-retweet'),
>>>>
>>>> _href=URL('transition_form', vars=dict((f, row[f]) for f in
>>>> db.users.fields))))], user_signature=True)
>>>> return dict(grid=grid)
>>>>
>>>> @auth.requires_login()
>>>>
>>>> def transition_form():
>>>> for f, v in request.vars.iteritems():
>>>> db.users[f].default = v
>>>> form = SQLFORM(db.users)
>>>>
>>>> if form.process().accepted:
>>>> response.flash = 'form accepted'
>>>> elif form.errors:
>>>> response.flash = 'errors on page'
>>>> else:
>>>> response.flash = 'facepalm'
>>>>
>>>> return dict(form=form)
>>>>
>>>> It populates the transition_form properly it just doesn't insert the
>>>> new record when I click submit. It just doubles the record and returns the
>>>> response in the view. Also, when loading the transition_form page it
>>>> automatically flashes with 'facepalm' which means its processing the form
>>>> on load.
>>>>
>>>> --
>>>> 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.
>>>>
>>>
>>>
--
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.