Say, that works!

Thanks.

On Monday, 20 January 2014 13:13:24 UTC-5, Anthony wrote:
>
> Instead of listing the fields to include in the grid, try setting the 
> "readable" attributes of fields you *don't* want to display to False. In 
> that case, I think all the fields will get included in the query (not 
> totally sure, though).
>
> Anthony
>
> On Monday, January 20, 2014 10:23:40 AM UTC-5, horridohobbyist wrote:
>>
>> "Ah, I see," said the blind man as he picked up his hammer and saw!
>>
>> I was trying to use 'sale' and also NOT to display it in the grid. I 
>> don't suppose there's a workaround.
>>
>> Thanks.
>>
>> On Monday, 20 January 2014 09:09:30 UTC-5, Massimo Di Pierro wrote:
>>>
>>> Here:
>>>
>>> SQLFORM.grid(db.products,fields=[db.products.name
>>> ,db.products.category,db.products.description,db.products.price],
>>>
>>> You are asking the grid to select "price" but not "sale", yet the 
>>> representation of "price" requires the field "sale" which is not retrieved 
>>> from the database.
>>> You need to select "sale" as well.
>>>
>>> On Monday, 20 January 2014 06:43:38 UTC-6, horridohobbyist wrote:
>>>>
>>>> In db.py, I have:
>>>>
>>>> db.define_table('products',
>>>>                 Field('name',length=64,unique=True),
>>>>                 Field('category',length=64),
>>>>                 Field('description','text',represent=lambda v, r: 
>>>> XML(v)),
>>>>                 Field('price','decimal(6,2)',represent=lambda v, r: 
>>>> '$'+str(v) if r.sale == 'regular' else B('$'+str(v))),
>>>>                 Field('sale'))
>>>>
>>>> In index.html, I have:
>>>>
>>>> {{=SQLFORM.grid(db.products,fields=[db.products.name
>>>> ,db.products.category,db.products.description,db.products.price],
>>>> maxtextlength=1000,
>>>> csv=False)
>>>> }}
>>>>
>>>> The traceback says:
>>>>
>>>> Traceback (most recent call last):
>>>>   File "/home/www-data/web2py/gluon/restricted.py", line 212, in restricted
>>>>     exec ccode in environment
>>>>   File 
>>>> "/home/www-data/web2py/applications/HorridoHobbies/views/default/index.html",
>>>>  line 85, in <module>
>>>>   File "/home/www-data/web2py/gluon/sqlhtml.py", line 2291, in grid
>>>>     value = field.represent(value, row)
>>>>   File "/home/www-data/web2py/applications/HorridoHobbies/models/db.py" 
>>>> <https://67.213.70.251/admin/default/edit/HorridoHobbies/models/db.py>, 
>>>> line 94, in <lambda>
>>>>     Field('price','decimal(6,2)',represent=lambda v, r: '$'+str(v) if 
>>>> r.sale == 'regular' else B('$'+str(v))),
>>>> AttributeError: 'Row' object has no attribute 'sale'
>>>>
>>>>
>>>> Thanks.
>>>>
>>>>
>>>> On Monday, 20 January 2014 00:50:39 UTC-5, Massimo Di Pierro wrote:
>>>>>
>>>>> When do you get that error? It does not originate in the model. Can 
>>>>> you show is the controller that you call when you get the error?
>>>>>
>>>>> On Sunday, 19 January 2014 21:51:42 UTC-6, horridohobbyist wrote:
>>>>>>
>>>>>> I have a database definition:
>>>>>>
>>>>>> db.define_table('products',
>>>>>>                 Field('price','decimal(6,2)',represent=lambda v, r: 1 
>>>>>> if r.sale == 'regular' else 2),
>>>>>>                 Field('sale'))
>>>>>>
>>>>>> I get an error saying that the 'Row' object has no 'sale' attribute. 
>>>>>> I'm puzzled. Of course, it has a 'sale' attribute; it's right there in 
>>>>>> the 
>>>>>> definition! What gives??
>>>>>>
>>>>>>

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

Reply via email to