My workaround is to change this: location = db(db.location.id == loc_id).select(db.location.ALL, db.location.point.st_x(). with_alias('latitude'), db.location.point.st_y(). with_alias('longitude')).first()
into this: row = db(db.location.id == loc_id).select(db.location.ALL, db.location.point.st_x(). with_alias('latitude'), db.location.point.st_y(). with_alias('longitude')).first() location = row.location location.latitude = row.latitude location.longitude = row.longitude It works but it's a little kludgy as far as I'm concerned. Anyone have a cleaner solution? On Tuesday, December 31, 2013 7:00:10 PM UTC-5, User wrote: > What is the proper way to select all fields plus a few additional > calculated fields? Here is my basic query with no calculated field > > location = db(db.location.id == loc_id).select().first() > > > This query returns location as a <class 'gluon.dal.Row'> object with > fields for the location table as attributes. With this I can access > location.address for example. > > Now to add calculated fields to get the geo spatial coordinates from the > point field, I'm trying this: > > location = db(db.location.id == loc_id).select(db.location.ALL, > db.location.point.st_x(). > with_alias('latitude'), > db.location.point.st_y(). > with_alias('longitude')).first() > > > Is this the proper way? This returns a <class 'gluon.dal.Row'> object with > a "location" field (which is in turn also a Row object) and "latitude" and > "longitude" fields. > > Now in order to access the address field I must do > location.location.address > > How can make it so I can access the fields like location.address and > location.latitude? > > -- 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.