Skip to content

Instantly share code, notes, and snippets.

@shenqihui
Forked from ryanpitts/gist:1304725
Last active August 29, 2015 14:18
Show Gist options
  • Save shenqihui/c84d1b3a81e8bf64b5a3 to your computer and use it in GitHub Desktop.
Save shenqihui/c84d1b3a81e8bf64b5a3 to your computer and use it in GitHub Desktop.
'''
given a Model with:
category = models.CharField(max_length=32, choices=CATEGORY_CHOICES)
pubdate = models.DateTimeField(default=datetime.now)
<other fields>
Fetch the item from each category with the latest pubdate.
'''
model_max_set = Model.objects.values('category').annotate(max_pubdate=Max('pubdate')).order_by()
q_statement = Q()
for pair in model_max_set:
q_statement |= (Q(category__exact=pair['category']) & Q(pubdate=pair['max_pubdate']))
model_set = Model.objects.filter(q_statement)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment