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.