You are changing the value in the Row object but not updating the actual 
record in the database. To do so, after updating the Row, you can call 
user.update_record(). Or if you only need to update the database (but not 
the Row), you can just do user.update_record(registration_key=''). 
Actually, if you don't need the user record for anything in the view, you 
can avoid the select altogether, and just do the update:

def show_reader():
    form=FORM(INPUT(_type='submit'))
    if form.accepts(request, session):
        response.flash = 'Użytkownik został aktywowany'
        db(db.auth_user.id == request.args(0, cast=int)).update(
registration_key='')
    return locals()

Anthony

On Sunday, May 25, 2014 8:45:56 AM UTC-4, john smith wrote:
>
> I set my app to require registration approval and cannot set the 
> registration_key programmatically. I can set it through appadmin interface. 
> Here is my code:
> @auth.requires_membership('librarian')
> def show_reader():
>     user = db.auth_user(request.args(0, cast=int))
>     form=FORM(INPUT(_type='submit'))
>     if form.accepts(request,session):
>         response.flash = 'Użytkownik został aktywowany'
>         user.registration_key=''
>     return locals()
>
> form is visible only if registration_key is set to 'pending'. When I click 
> submit it seems to work because the form disappears(and if i print 
> registration key in view i get empty string), but when i refresh the page 
> the button is back and appadmin shows that registration key is set to 
> 'pending'. Is there something I'm missing?
>

-- 
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