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.

Reply via email to