I don't get all my db.table fields form define_table fields defined...

A other guy report that... But didn't find exactly why his compute
functions as stop working properly...

To me it's related to the fact tha if I do :

Field('mycomputefield', compute=lambda r: r)

I am not getting all the fields.

For example:

db.define_table('test1',
    Field('f1','string'),
    Field('f2','integer'),
    Field('computefield',compute=lambda r: r))

Will return only field that appear in form, so if I set f1 to
writable=False, it will not be in form so it will not be available to
compute function...

I think it for make compute failed silently if some fields are set to
writable or readable = False... But I would return all the field to compute
with a "None" for empty field instead of not returning any key... I really
don't know if it even possible, if it is a bug or something else...

I work around issue I were having with compute (I would compute a md5 hash
for row so I would have all key/value pairs even if one of those were
empty, but I can't with compute), so I use the new virtual field style
(hope it will stay).

Here the thread I am refering to :
http://groups.google.com/group/web2py/browse_thread/thread/cd6191f9827a48d5/a367c0e5055bb676?lnk=gst&q=Computed+Fields+broken+by+1.99.2#a367c0e5055bb676


Richard

On Mon, Dec 19, 2011 at 2:22 PM, Anthony <abasta...@gmail.com> wrote:

> What do you mean it doesn't return all the fields?
>
>
> On Monday, December 19, 2011 10:47:42 AM UTC-5, Richard wrote:
>>
>> Hello,
>>
>> I try to use compute to generate a record md5_hash on insert and
>> update, but I discover that compute=lambda r: don't return all the
>> db.table fields why?
>>
>> Thanks
>>
>> Richard
>>
>>

Reply via email to