2

У меня есть эта модель:Джанго: Количество объектов в определенном месяце

class Person(models.Model): 
    city = models.CharField(max_length=20, blank=True) 
    added_date = models.DateField(default=datetime.date.today) 

Я хочу создать шаблон/вид, который имеет таблицу месяцев и количество людей, добавляемые в этом месяц (то есть, 5 в 10 января, 8 марта в марте и т. д.). У меня аналогичная таблица для всех людей из каждого города, используя:

cities = Patient.objects.values('city').annotate(city_count=Count('city')).order_by('-city_count') 

Я не знаю, как сделать это для моего месяца таблицы. Я мог бы фильтровать в течение определенного месяца, а затем считать все. Но тогда мне нужно будет запускать это через цикл за каждый месяц, который будет представлять собой множественные удары базы данных. Я не хочу этого делать.

Есть ли способ сделать это без написания sql и просто используя api django?

+0

Рассматривали ли вы их вытягивание, работая над ним на Python? Это только один удаленный БД, но большой –

+0

Я думаю, я мог бы попробовать это, но мне интересно, есть ли более элегантный способ использовать django, чтобы помочь мне с этим, или если нет, чтобы позволить db-запросу сделать это для меня ; это кажется мне более подходящим. – rsp

ответ

0

Тот факт, что большинство БД имеют такой прекрасный способ сделать это с запросом GROUP BY, который не имеет аналога в Django AFAIK, заставил бы меня зайти в SQL для этого. Я сделал поиск по Google для «django sql» и поднял этот пост Дуга Хеллмана по этой точной проблеме: http://blog.doughellmann.com/2007/12/using-raw-sql-in-django.html. Я бы использовал это как отправную точку для получения вашего месяца в Django.

 Смежные вопросы

  • Нет связанных вопросов^_^