I cannot reproduce. Here is what I get using your exact code:

In [2]:

dbt = DAL('sqlite:memory')

In [4]:

dbt.define_table('test',
 Field('x', 'float'),
 Field('y', 'float', compute=lambda r: r['x'] * 2))

Out[4]:
<Table test (id,x,y)>

In [5]:

dbt.test.validate_and_insert(x=1)

Out[5]:
<Row {'errors': {}, 'id': 1L}>

In [6]:

dbt.test(1)

Out[6]:
<Row {'x': 1.0, 'id': 1L, 'y': 2.0}>



Anthony

On Monday, October 3, 2016 at 1:24:46 AM UTC-4, Yang wrote:
>
> Hello, 
>
> It seems that validate_and_insert() doesn't work for compute field. For 
> example,
>
> db.define_table('test',
>                           Field('x', 'float'),
>                           Field('y', 'float', compute=lambda r: r['x'] * 
> 2))
>
> db.test.validate_and_insert(x=1) gives <Row {'x': 1.0, 'id': 1L, 'y': 
> None}>
> db.test.insert(x=1) gives <Row {'x': 1.0, 'id': 1L, 'y': 2.0}>
>
> Is this expected? Thank you in advance.
>

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