Ich habe eine django (DRF), in der app I periodische Zeitreihendaten basierend auf API-Antwort zu speichern. Hier ist meine 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)
Ich bin mit django-Filter , um die Abfragedaten basierend auf einem Bereich (__lte, __gte). Wie /api/alexa/?created_at__lte=2020-02-14T09:15:52.329641Z
Rückkehr alle erstellten Daten vor2020-02-14T09:15:52.329641Z
[
{
id: 1,
created_at: 2020-02-03T19:30:57.868588Z,
extra: {'load_time': 00, 'backlink': 0},
rank: 0
},
...
]
Gibt es eine Möglichkeit , einen Endpunkt zu bauen aggregierte Daten nach Tag, Woche, Monat und Jahr auf der Grundlage der Abfrage params gruppierten zurückzukehren I übergeben. Zum Beispiel
/api/alexa/?created_at__lte=2020-02-14T09:15:52.329641Z&group_by=month
würde zurückkehren
[
{
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
},
]
Hier ist meine aktuelle serializer.py
class AlexaViewSet(viewsets.ModelViewSet):
queryset = Alexa.objects.all()
filter_fields = {'created_at' : ['iexact', 'lte', 'gte']}
http_method_names = ['get', 'post', 'head']
Ich habe mehrere Schnipsel gesehen Aggregation zu tun, aber keiner meine Anforderungen vollständig zu erfüllen, noch mir eine komplette Idee über das Thema geben.
Ich bin neu in Django und den Aufbau Analytik Dashboards in der Regel, wenn es eine andere Möglichkeit gibt zu repräsentieren solche Zeitreihen-Daten für den Verbrauch in Front-End-Grafiken, würde ich Ihre Vorschläge an, dass auch zu schätzen wissen.