I would suggest trying not to break up the date and simply use a
DateField and a separate IntegerField (or BigIntegerField). Of course
you avoid using a DateTimeField since the time would be irrelevant,
and if you think the day is irrelevant think again. Assign a meaning
to the date and your logic can be sound--perhaps the first date of the
month, or the start day then on a second DateField you can have the
end date. Having a start/stop is probably more complex than is
required for what you are trying to do--if you want it by months I
would always just put the 1st of the month down.
# Inside your Post model and in the file you will need:
from django.db import models
class Post(models.Model):
pub_date = models.DateField(_('Start Date'), help_text=_('Date the
month begins for this dataset.'))
count = models.IntegerField()
# Now in your view you can simply use the Django ORM:
Post.objects.all().order_by('-pub_date')
# Or add a month filter
Post.objects.all().filter(pub_date__year=2005).order_by('-pub_date')
Post.objects.all().filter(pub_date__gt=datetime.date(2005, 1,
3)).order_by('-pub_date')
# IF you had a foreign key, get that data also with select_related
Post.objects.all().filter(pub_date__year=2005).select_related('model_name').order_by('-
pub_date')
# You could also order by count
Post.objects.all().filter(pub_date__year=2011).order_by('count')
Hope this helps,
Matteius
On Sep 6, 9:30 am, Yaşar Arabacı <
yasar11...@gmail.com> wrote:
> 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 <
andrete...@gmail.com>
>
>
>
>
>
> >
http://django.me/aggregation
>
> > Cheers,
> > AT
>
> > 2011/9/6 Yaşar Arabacı <
yasar11...@gmail.com>