A belated thanks, Anthony. I had forgotten about the rows.sort() method. On Thursday, April 30, 2015 at 5:13:23 PM UTC-4, Anthony wrote: > > The sorting via orderby is handled by the database, so you can't use > Python code for that, as it must be executed by the database. However, the > Rows object has a .sort() method, which does the sorting in Python after > the records are returned by the database. See > http://web2py.com/books/default/chapter/29/06/the-database-abstraction-layer#find--exclude--sort > . > > Note, depending on the size of the dataset, sorting in Python might be > slower than having the database handle it. > > Anthony > > On Thursday, April 30, 2015 at 3:42:06 PM UTC-4, Ian W. Scott wrote: >> >> I want to sort the results of a select() based on a string field. >> Normally I can just use select(orderby=db.mytable.myfield), but the strings >> are not in Latin characters, so the default string sorting produces >> unacceptable results. >> >> I've figured out how to create a comparison function using the PyICU >> bindings to the ICU library. In a regular list sort this allows me to do >> something like this: >> >> from icu import Locale, Collator >> myloc = Locale('el') >> col = Collator.createInstance(myloc) >> words = ['ἀγ', 'βλα', 'ὁμηρ'] >> sorted_words = sorted(words, cmp=col.compare) >> >> Is there any way to pass this kind of custom collating function to the >> select()? >> >
-- 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.

