Login

Use dateutil's relativedelta to sort an arbitrary list of Django objects by date

Author:
cmcavoy
Posted:
March 1, 2007
Language:
Python
Version:
Pre .96
Score:
4 (after 4 ratings)

Sometimes you'll have a list of ORM objects that aren't in a QuerySet, but you still want to sort them by date. For instance, you have a list of shows with a date_time attribute. Maybe you used a list comprehension to filter them...who knows. Regardless, you have a list (not a QuerySet) of Django objects.

1
2
3
4
5
6
7
8
9
"""
Given a list of objects with date_time attributes
 that return a datetime, this sorts them in ascending 
order.  It requires the dateutil package from
 http://cheeseshop.python.org/pypi/python-dateutil"""

from dateutil.relativedelta import *

shows.sort(cmp=lambda x,y:relativedelta(x.date_time,y.date_time).minutes)

More like this

  1. Template tag - list punctuation for a list of items by shapiromatron 3 months, 1 week ago
  2. JSONRequestMiddleware adds a .json() method to your HttpRequests by cdcarter 3 months, 2 weeks ago
  3. Serializer factory with Django Rest Framework by julio 10 months, 1 week ago
  4. Image compression before saving the new model / work with JPG, PNG by Schleidens 11 months ago
  5. Help text hyperlinks by sa2812 11 months, 3 weeks ago

Comments

Please login first before commenting.