Наркомансое группирование по годам — Django

Вот нудно мне сгруппировать новости по году, поле храниться как datetime.date.today. Почему то захотелось по наркоманить и пойти не стандартным способом=) В общем получился python код =)

Запихал все в шаблонный тег, ну и вот, что получилось:

@register.simple_tag
def list_year():
    import itertools
    news = News.objects.filter(status=1)
    years = [str(item.creation_date.year) for item in news]
    dates = list(enumerate(years, start=1))
    result = [key for key,group in itertools.groupby(dates, key=lambda x: x[1][:11])]
    result_html = ''
    for item in result:
        result_html += 'За <a href="?year=%s">%s</a> год<br />' % (item, item)
    result_html += '<br />'
    return result_html

Добавить комментарий