rows = db(db.event).select(groupby=db.event.device_id,
                          
left=db.devices.on(db.devices.id==db.event.device_id))

On Friday, 15 February 2013 15:26:08 UTC-6, Christian Espinoza wrote:
>
> Hi all!, could somebody get me a hand in order to improve this code, 
> please?
> I'm getting a array of dicts here, every device have it last event 
> attached in the dict...
>
> I'm want delete the iteration over the events table, I don't think it is 
> efficient enough
> maybe it could be changed doing a better query, joining the event and 
> device tables in a sql view...
> on this way I can get a row.as_dict directly....
>
>
> db.define_table('devices',
>     Field('serial'),
>     Field('brand'),
>     Field('location'),
>     format='%(serial)s'
>             )
>
> db.define_table('events',
>     Field('device_id'),
>     Field('date', datetime),
>     Field('location'),
>     format='%(device_id)s'
>             )
>
>
> @service.json
> events_service():
>     events = {} 
>     devices = db(db.devices).select()
>     for dev in devices:
>         event = db(db.events.device_id == dev.id).select().last()
>         events[dev.id] = {
>                          'name':event('name'),
>                          'date':event('date'),
>                          'brand':dev.brand,
>                          'location':dev.location }
> return events
>
>
> Thanks in advance.
> Christian.
>

-- 

--- 
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/groups/opt_out.


Reply via email to