It should. Can you provide a concrete example?

On Friday, 21 June 2013 10:31:45 UTC-5, Richard wrote:
>
> Further code review lead me to the conclusion that the issue is not 
> because compute don't get all it needs to compute... I mean I get the row 
> and since it is a update every field are available in the row and I still 
> need to redefine the compute field...
>
> Should computed field computes on db.table(id).update_record(key=value, 
> key=value, ...)?
>
> Thanks
>
> Richard
>
>
> On Thu, Jun 20, 2013 at 5:09 PM, Richard Vézina 
> <ml.richa...@gmail.com<javascript:>
> > wrote:
>
>> 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....@gmail.com<javascript:>
>> > 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+un...@googlegroups.com <javascript:>.
>>> 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