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.

Reply via email to