Solve a problem by myself. Simply put additional code with callback call 
before in line 428.

четверг, 23 октября 2014 г., 14:20:25 UTC+4 пользователь Dmitry Vlasov 
написал:
>
> Hi folks,
>
> I'm trying to insert additional field to DB, but it cannot be obtain from 
> SQLFORM.
> I use SOLIDGRID plugin 
> http://dev.s-cubism.com/plugin_solidgrid?_signature=868375a5ca48f87805d4366b05a2df678637611e
>
> For my purposes I define a table
>
> db.define_table('r_users',
>                 db.Field('username', 'string', requires=IS_NOT_EMPTY(), 
> length=128, required=True),
>                 db.Field('registered', 'boolean', required=True,
>                          default=False),
>                 db.Field('email', 'string', requires = 
> IS_EMAIL(error_message='invalid email!'),
>                          length=64, required=True),
>                 db.Field('password', 'string', requires=IS_NOT_EMPTY(), 
> length=255, required=True),
>                 db.Field('ip', 'string', requires = IS_IPV4(), 
> required=False, default='127.0.0.1'),
>                 db.Field('modified_on', 'datetime', required=True),
>                 db.Field('captcha_url', 'string', length=255, 
> required=True),
>                 migrate='r_users.table', fake_migrate=fake_migrate)
>
>
> and add to plugin code invalidation method to calculate field that I 
> cannot obtain from form (add to line 298):
>
>         def __onvalidation(form):
>             rs = self.callback(request.post_vars)
>             print request.post_vars
>             if rs.startswith('http'):
>                 request.post_vars['captcha_url'] = rs
>
> and assign this in the line 429
>
>                 create_form = SOLIDFORM(virtualtable or table,
>                         fields=create if type(create) in (list, tuple) 
> else None,
>                         showid=showid,
>                         _class='web2py_form',
>                         submit_button=T('Create'),
>                         ).process(  # next=referrer, for web2py-bug
>                                   *onvalidation=__onvalidation,*
>                                   onsuccess=oncreate,
>                                   formname=formname)
>
> This method added captcha_url field to request.post_vars successfully. But 
> in DB there is no value.
>
>
> This is the common problem, not only using this plug-in. I cannot do this 
> trick while using SQLFORM only, without plug-in.
> What I'm doing wrong? 
>
> Thanks.
>
>
>

-- 
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 web2py+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to