У меня есть Джанго (ФПИ) приложение, в котором я хранящую данные периодических временных рядов, основанные на ответ API. Вот мой model.py
# Model to store the Alexa API Data
class Alexa(models.Model):
created_at = models.DateTimeField(auto_now_add=True)
extra = jsonfield.JSONField(null=True)
rank = models.PositiveIntegerField(default=0, null=True)
Я использую Django-фильтры для запроса данных на основе диапазона (__lte, __gte). Как /api/alexa/?created_at__lte=2020-02-14T09:15:52.329641Z
вернуть все данные , созданные до2020-02-14T09:15:52.329641Z
[
{
id: 1,
created_at: 2020-02-03T19:30:57.868588Z,
extra: {'load_time': 00, 'backlink': 0},
rank: 0
},
...
]
Есть ли способ , чтобы построить конечную точку для возврата агрегированных данных , сгруппированных по дням, недели, месяц и год на основе запроса Params я прохожу. Например,
/api/alexa/?created_at__lte=2020-02-14T09:15:52.329641Z&group_by=month
вернется
[
{
created_at: 2020-01-01T00:00:00.000000Z,
extra: {'load_time': 00, 'backlink': 0}, <- Aggregated Data
rank: 0 <- Aggregated Data
},
{
created_at: 2020-02-01T00:00:00.000000Z,
extra: {'load_time': 00, 'backlink': 0}, <- Aggregated Data
rank: 0 <- Aggregated Data
},
]
Вот мой текущий serializer.py
class AlexaViewSet(viewsets.ModelViewSet):
queryset = Alexa.objects.all()
filter_fields = {'created_at' : ['iexact', 'lte', 'gte']}
http_method_names = ['get', 'post', 'head']
Я видел несколько фрагментов делает агрегацию, но ни один полностью не выполняет мои требования и не дает мне полное представление о теме.
Я новичок в Django и строительство аналитических информационных панели в целом, если есть какой-либо другой способ представления данных таких временных рядов, для потребления в фронтальных графиках, я был бы признателен за ваши предложения, что хорошо.