The orderby of the DAL or the ORDER BY of the SQL engine you use wouldn't 
do the job?


sexta-feira, 12 de Abril de 2019 às 11:03:10 UTC+1, Dave S escreveu:
>
> Pro tip:  do not call your controller function "sorted".
>
> Getting past that, I have a Rows object (call it "rowed") that I've 
> created from munching through the results of a select().  (Why?  because 
> for presentation reasons, I do an aggregation with custom logic.)  In the 
> past, ordering was done by the select and "inherited" by rowed.  Now I want 
> the option of sorting rowed by a different field (the aggregated count).  
> If I do 
>   rowed.records = sorted(rowed.records,key=lambda r: r.NumAdded)
> everything is fine.  But if I do
> rowed.sort(lambda r: r["NumAdded"])
> or
> rowed.records.sort(lambda r: ["NumAdded"])
> I don't get what I want.  The first doesn't seem to change the ordering, 
> and the second raises heck^W an exception
> <type 'exceptions.TypeError'>(<lambda>() takes exactly 1 argument (2 
> given))
>
> In the ticket, rowed.records looks like 
> [<Row {'PostDate': datetime.date(2016, 11, 25), 'funkystr': 
> '...xxxxxxxxxxxxxxxxxx', 'id': 26L, 'NumAdded': 31L}>, <Row {'PostDate': 
> datetime.date(2017, 1, 2), 'funkystr': 'xxxxxxxxxxxxxxx', 'id': 131L, 
> 'NumAdded': 15L}>, ....]
>
> and r like
> <Set (QuarterMaster.PostDate IS NOT NULL)>
>
> These suggest that my lambda is getting passed something other than what's 
> in the curly braces above.  What would be the correct way to write the 
> lambda (which would right the ship)?
>
> [OT:  I think Opera mucks up the GG formatting controls; I may edit this 
> in FF or Chrome tomorrow]
>
> PS:  thanks again to Anthony for previous help with cmp/key issues.
>
> Dave S
> /dps
>
>

-- 
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.

Reply via email to