Tuesday, September 6, 2011

Re: How to group models month by month.

I already read that, but I can figure out it is something to do with my question, bu can't figure out what exactly should I do with aggreates. I ended up doing something like this:
    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()

Then in template:

{% 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 %}

2011/9/6 Andre Terra <andreterra@gmail.com>
http://django.me/aggregation


Cheers,
AT

2011/9/6 Yaşar Arabacı <yasar11732@gmail.com>

I have a model with datetime field. I want to get a table with three columns as, year, month and number of items in time span. And I also want to order them from newest to oldest. What I want to get is something like this:

 2011 August 4
2011 March 7

How do you suggest I should do that?

I am trying to add post archives to my front page in my blog. Here is link to same question on StackOverflow: http://stackoverflow.com/q/7320662/886669

--
http://yasar.serveblog.net/

--
You received this message because you are subscribed to the Google Groups "Django users" group.
To post to this group, send email to django-users@googlegroups.com.
To unsubscribe from this group, send email to django-users+unsubscribe@googlegroups.com.
For more options, visit this group at http://groups.google.com/group/django-users?hl=en.

--
You received this message because you are subscribed to the Google Groups "Django users" group.
To post to this group, send email to django-users@googlegroups.com.
To unsubscribe from this group, send email to django-users+unsubscribe@googlegroups.com.
For more options, visit this group at http://groups.google.com/group/django-users?hl=en.



--
http://yasar.serveblog.net/

--
You received this message because you are subscribed to the Google Groups "Django users" group.
To post to this group, send email to django-users@googlegroups.com.
To unsubscribe from this group, send email to django-users+unsubscribe@googlegroups.com.
For more options, visit this group at http://groups.google.com/group/django-users?hl=en.

No comments:

Post a Comment