Added Reverse option to SortedLists

Thanks Stephen Young for the patch
closes #364
This commit is contained in:
Ross Lawley
2011-11-30 02:15:47 -08:00
parent fbe8b28b2e
commit 6cef571bfb
4 changed files with 33 additions and 2 deletions

View File

@@ -511,20 +511,24 @@ class SortedListField(ListField):
retrieved.
.. versionadded:: 0.4
.. versionchanged:: 0.6 - added reverse keyword
"""
_ordering = None
_order_reverse = False
def __init__(self, field, **kwargs):
if 'ordering' in kwargs.keys():
self._ordering = kwargs.pop('ordering')
if 'reverse' in kwargs.keys():
self._order_reverse = kwargs.pop('reverse')
super(SortedListField, self).__init__(field, **kwargs)
def to_mongo(self, value):
value = super(SortedListField, self).to_mongo(value)
if self._ordering is not None:
return sorted(value, key=itemgetter(self._ordering))
return sorted(value)
return sorted(value, key=itemgetter(self._ordering), reverse=self._order_reverse)
return sorted(value, reverse=self._order_reverse)
class DictField(ComplexBaseField):