yes, it's a bug. there's no reference anymore to the format.........opened on web2py/pydal
On Monday, April 13, 2015 at 7:34:58 AM UTC+2, wish...@gmail.com wrote: > > 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 web2py+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.