being a bug, we need to ship a new web2py. it got fixed already. we're waiting for Massimo to release a 2.10.4.
On Tuesday, April 14, 2015 at 10:51:31 PM UTC+2, [email protected] wrote: > > I just discovered, there's already a issue posted.. > > https://groups.google.com/forum/#!topic/web2py/Tog4tdUl400 > https://github.com/web2py/web2py/issues/904 > > Are there already any solutions yet? > > Thanks & cheers > Toby > > [email protected]: >> >> Hey guys! >> >> Did 2.10.3-stable+timestamp.2015.04.02.21.42.07 change something in the >> way* format statements *%(fields)s are handled? >> >> When referencing another table, the *format statement now seems to be >> ignored*. Instead only the foreign key id is displayed. >> >> Example >> >> I have the following lookup table >> >> db.define_table('countries', >> Field('country', 'string'), >> Field('the_geom', 'geometry()'), >> Field.Virtual('latitude', lambda row: db(db.countries.id == >> row.countries.id >> ).select(db.countries.centroid.st_y()).first()[db.countries.centroid.st_y()]), >> Field.Virtual('longitude', lambda row: db(db.countries.id == >> row.countries.id >> ).select(db.countries.centroid.st_x()).first()[db.countries.centroid.st_x()]), >> * format='%(country)s'*, migrate=True) >> >> Another table is referencing this lookup table >> >> db.define_table('uploads', >> Field('country',* db.countries*), >> Field('uploaded','date'), >> ... >> migrate=True) >> >> Now I would like to count the number of uploads per country. >> >> def count_uploads_by_country(): >> import datetime >> from datetime import timedelta >> count = db.wifi_zone.id.count() >> result = db(db.uploads.uploaded > datetime.date.today() - >> timedelta(days=7)).select(*db.uploads.country*, count, groupby = >> db.uploads.country).render() >> return dict(result=result) >> >> I would expect that a query on the uploads table would display the >> country name as specified in the format statement, i.e. >> *Country Uploads per Country* >> *France* 123 >> *Italy *45 >> *Germany *10 >> >> Until recently this worked perfectly, but following the update to 2.10.3 >> only the country ids are returned, i.e. >> >> *Country Uploads per Country**1* <-- foreign id instead of name >> *2* <-- 45 >> *3* <-- 10 >> >> db._lastsql shows that the country name isn't even queried: >> SELECT uploads.country, COUNT(uploads.id) FROM uploads WHERE >> (uploads.last_updated > '2015-04-04') GROUP BY uploads.country; >> >> Does anybody have a clue, why only the foreign id is displayed, but not >> the country name according to the format statement? >> >> Cheers >> Toby >> >> -- 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 [email protected]. For more options, visit https://groups.google.com/d/optout.

