Je une application django (DRF) dans laquelle I stocker des données de séries chronologiques périodiques sur la base de la réponse de l'API. Voici mon 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)
J'utilise des filtres django à des données de requête à partir d'une plage (__lte, __gte). Comme /api/alexa/?created_at__lte=2020-02-14T09:15:52.329641Z
retourner toutes les données créées avant2020-02-14T09:15:52.329641Z
[
{
id: 1,
created_at: 2020-02-03T19:30:57.868588Z,
extra: {'load_time': 00, 'backlink': 0},
rank: 0
},
...
]
Est - il possible de construire un point final pour renvoyer des données agrégées regroupées par jour, semaine, mois et année sur la base des paramètres de requête que je passe. Par exemple,
/api/alexa/?created_at__lte=2020-02-14T09:15:52.329641Z&group_by=month
renverrait
[
{
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
},
]
Voici mon serializer.py actuel
class AlexaViewSet(viewsets.ModelViewSet):
queryset = Alexa.objects.all()
filter_fields = {'created_at' : ['iexact', 'lte', 'gte']}
http_method_names = ['get', 'post', 'head']
Je l'ai vu plusieurs extraits qui font l'agrégation, mais pas tout à fait remplir mes exigences, ni me donner une idée sur le sujet.
Je suis nouveau à Django et tableaux de bord du bâtiment d'analyse en général, s'il y a une autre façon de représenter ces données de séries chronologiques pour la consommation sous forme de graphiques front-end, je vous serais reconnaissant de vos suggestions aussi.