Ok, yes, it may not have some field that are to None... I had issue with
that that I have patch my compute function for. I should be the same...

Thank you Massimo to point me this out.

Richard


On Thu, Jun 20, 2013 at 5:02 PM, Massimo Di Pierro <
massimo.dipie...@gmail.com> wrote:

> I think the problem is that your form does not contain enough info for the
> computed field. You correctly pull them from DB (in row) and pass to the
> compute function.
>
>
> On Thursday, 20 June 2013 12:13:16 UTC-5, Richard wrote:
>>
>> Hello,
>>
>> I don't understand why I have to redefine my compute field function...
>>
>> I have a compute field like this one :
>>
>> # model
>> db.define_table('mytable',
>>     Field('f1', 'string'),
>>     Field('review', 'boolean'),
>>     Field('record_review_status', compute=lambda record:
>> return_computed(record, request.args(0)))
>>
>> # contoller
>> def fun():
>>     form = SQLFORM.factory(Field(...))
>>     session.rows = db(db[request.args(0)].review == False).select()
>>     table = SQLTABLE(session.rows...)
>>     form.process().accepted:
>>         for r in session.rows:
>>         row = db[request.args(0)](r.id)
>>         row.update_record(review='**TRUE')
>>         db.commit()
>>         row = db[request.args(0)](r.id)
>>         *row.record_review_status = return_record_review_status(row,
>> request.args(0)) # here I need to redefine my record_review_status compute
>> field or it not get computed*
>>         row.update_record()
>>         db.commit()
>>     ...
>>
>> Note : It is pseudo code, so it may seems dumb or not working, I just try
>> to make an example of what going on in my app...
>>
>> In the book it is said that if we try to update record without passing,
>> web2py tries to compute compute field base on orther field value...
>>
>> http://web2py.com/books/**default/chapter/29/06?search=**
>> compute#Computed-fields<http://web2py.com/books/default/chapter/29/06?search=compute#Computed-fields>
>>
>> By the way, this part of the book is not pretty clear... For instance do
>> I have to leave update() of update_record() blank in order to get my
>> compute field to be computed.
>>
>> Also, it is not exactly clear to me why my compute field not get compute
>> on row.update_record(review='**TRUE')... What I understand is that I
>> need to explicitly update my compute field, but the way to do it seems to
>> passing not paramaters to update() or update_record().
>>
>> In my case, it seems that my compute function can't get the 'TRUE' for
>> review only once the update(review='TRUE') is committed... I try to remove
>> the line in bold, because it already in my model, but it is not working, my
>> compute field never get updated it status.
>>
>> Thanks to clarify this to me.
>>
>> Richard
>>
>  --
>
> ---
> 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/groups/opt_out.
>
>
>

-- 

--- 
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/groups/opt_out.


Reply via email to