#python #sql #django
#python #sql #джанго
Вопрос:
Я создаю расширяемое аналитическое приложение для django, идея состоит в том, чтобы иметь таблицу с событиями, которые вы хотите отслеживать, и таблицу, которая связывает события с определенной датой и определенным пользователем.
Вот моя основная модель:
class Events_Tracked(models.Model):
data_point = models.ForeignKey('Data_Points', related_name='data_point')
event_date = models.DateTimeField(default=datetime.datetime.now())
user = models.ForeignKey('Users', related_name= 'user_tracked')
Теперь моя проблема состоит в том, чтобы создать запрос django, который может группировать события, отслеживаемые по месяцам, и возвращать количество отслеживаемых событий (строк), где data_point__id — это идентификатор, который я указываю.
Прити, конечно, я мог бы сделать:
Events_Tracked.objects.values('event_date__month').annotate(Count('data_point')).filter(data_point__id=1)
Но это будет ограничено количеством одной точки данных, мне нужен запрос, который может возвращать строку подсчета для каждой из точек данных, которые я хочу отслеживать.
РЕДАКТИРОВАТЬ: Еще один очень важный запрос, который мне нужно создать, — это для каждого месяца получать количество пользователей, у которых отслеживались события, чей идентификатор data_point находится в списке идентификаторов.
Комментарии:
1. Я не уверен, что понимаю вашу проблему. Не могли бы вы рассказать нам, каков именно ваш желаемый результат? Вы имеете в виду, что хотите передать список data_points в свой запрос и получить обратно список кортежей, соответствующих (месяц, число_of_data_points) ?
2. Я хочу передать список идентификаторов data_point (например: 1, 2, 3) и получить количество совпадений каждой из этих точек данных за каждый месяц.