Джанго последние тридцать дней добавил с номером - PullRequest
1 голос
/ 14 августа 2010

С такой моделью:

class User(models.Model):
    entered = models.DateTimeField(auto_now_add=True)

Как получить статистические данные, чтобы показать последних добавленных пользователей за последние 30 дней с количеством пользователей, добавленных в этот день.

Пример:

2010-08-02: 220
2010-08-08: 1220
2010-08-14: 20

1 Ответ

3 голосов
/ 14 августа 2010

Обновление :

Этот ответ бесполезен.Поскольку entered является DateTimeField, запрос будет иметь счет 1 для каждого значения entered.Это не то, что хотел ОП.(Спасибо Дэннироа )

Изменение типа entered на DateField должно помочь.

Оригинальный ответ

Для этого вы можете использовать функцию агрегации в Django.Примерно так:

from django.db.models import Count
q = User.objects.annotate(Count('entered')).order_by('-entered')
for user in q[0:30]:
    print "%s %s" % (user.entered, user.entered__count)

Обновление

Вы можете нарезать набор запросов и затем передать его в шаблон.

# View 
def my_view(*args, **kwargs):
    queryset = User.objects.annotate(Count('entered')).order_by('-entered')
    context = dict(queryset = queryset[0:30])
    return render_to_response('my_template.html', context_instance = RequestContext(request, context))    

# Template
{% for user in queryset %}
    <td>{{ user.entered }}</td>
    <td>{{ user.entered_count }}</td>
{% endfor %}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...