У меня есть модель с полем datetime. Я хочу получить таблицу с тремя столбцами: год, месяц и количество элементов за промежуток времени. И я также хочу заказать их от самых новых до самых старых. Я хочу получить что-то вроде этого:
2011 August 4
2011 March 7
Как вы предлагаете мне это сделать?
Редактировать
Я закончил тем, что делал что-то подобное, но я не уверен, что это лучший путь
query_set = Post.objects.all()
years = query_set.dates("pub_date","year")
date_hierarchy = {}
for year in years:
date_hierarchy[year] = {}
months = query_set.filter(pub_date__year=year.year).dates("pub_date","month")
for month in months:
date_hierarchy[year][month] = query_set.filter(pub_date__year=month.year,pub_date__month=month.month).count()
Затем в шаблоне:
{% for year, month_dict in date_hierarchy.items %}
{% for month,post_count in month_dict.items %}
<li><a href="{% url arsiv_month month.year month.month %}">{{ month|date:"Y E" }} [{{ post_count }}]</a></li>
{% endfor %}
{% endfor %}