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