Anthony,
Thank you :-)

Kiran

On Thursday, March 20, 2014 1:51:15 AM UTC+5:30, Anthony wrote:
>
> def mygrid():
>     if 'edit' in request.args:
>         db.x.p.writable = False
>         db.x.r.readable = db.x.r.writable = False
>     else:
>         db.x.p.readable = db.x.q.readable = db.x.r.readable = False
>     return dict(grid=SQLFORM.grid(db.x, ...)
>
>
> On Wednesday, March 19, 2014 3:41:09 PM UTC-4, Kiran Subbaraman wrote:
>
>> Thanks, that makes sense.
>> What am trying to do is this...
>>
>> *model*
>> db.define_table('x',
>>     Field('p', type='string'),
>>     Field('q', type='string'),
>>     Field('r', type='text')
>>     )
>>
>> This will be displayed in a SQLFORM.grid, with the following caveats:
>>
>>    1. I do not want to see columns for p, q, and r, but rather format 
>>    the output in such way that p q r are concatenated.Therefore the grid 
>> will 
>>    look like this:
>>    |--p+q+r value--|--row buttons--|
>>    2. When I edit the row, the edit form should display:
>>    p (in readonly mode)
>>    q (in read/write mode)
>>    r (is not displayed)
>>
>>
>>    - For caveat 1, I achieved that with the grid's links={} option to 
>>    display what I need, in the format I needed it. Something like this links 
>> = 
>>    [{'header':'Custom stuff', 'body':lambda row: .... }]. This also means 
>> that 
>>    I set all the fields to readable=False. 
>>    - For caveat 2, I was trying the stuff mentioned in my original post
>>    
>>
>>
>>
>>
>>
>>
>> On Thursday, March 20, 2014 12:51:12 AM UTC+5:30, Anthony wrote:
>>>
>>> The label is used to label an entire column, so it wouldn't make sense 
>>> to calculate a different label for every record. What exactly are you 
>>> trying to do?
>>>
>>> On Wednesday, March 19, 2014 2:54:22 PM UTC-4, Kiran Subbaraman wrote:
>>>>
>>>> Hello,
>>>> I am creating a SQLFORM.grid(), and in the update-form for that grid, I 
>>>> want to display the label value by computing it.
>>>>
>>>> Basically, I have this:
>>>>
>>>> model:
>>>> db.define_table('x',
>>>>     Field('p', type='string'),
>>>>     Field('q', type='string')
>>>>     )
>>>>
>>>>
>>>> controller:
>>>> ....
>>>>   if blah:
>>>>      db.x.q.label = lambda row: row.p
>>>> .....
>>>>
>>>>
>>>> The label is displayed like this '<function <lambda> at 0x0955FF30>'
>>>> Not sure if this is supported, or I need to change this code?
>>>> Any help?
>>>>
>>>> Thanks,
>>>> Kiran
>>>>
>>>

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