gregação @django para diminuir a resolução usando o agrupamento por perío

horrible title, mas deixe-me explicar: eu tenho esse modelo de django contendo um carimbo de data / hora (data) e o atributo para log - f.e. o número de usuários que consomem algum recurso - (valor).

class Viewers(models.Model):
    date = models.DateTimeField()
    value = models.IntegerField()

para cada 10 segundos a tabela contém o número de usuários. algo assim

| date | value |
|------|-------|
|  t1  |   15  |
|  t2  |   18  |
|  t3  |   27  |
|  t4  |   25  |
|  ..  |   ..  |
|  t30 |   38  |
|  t31 |   36  |
|  ..  |   ..  |

gora, quero gerar estatísticas diferentes a partir desses dados, cada um com outra resolução. f.e. Para um gráfico do último dia, não preciso da resolução de 10segundo, então quero etapas de 5 minutos (que são construídas pela média dos valores (e talvez também da data) das linhas de t1 a t29, t30 a t59,. ..), para que eu receba:

| date | value |
|------|-------|
|  t15 |   21  |
|  t45 |   32  |
|  ..  |   ..  |

os atributos para manter a variável são o registro de data e hora de início e término e a resolução (como 5 minutos). existe uma maneira de usar a API do django orm / queryset e, se não, como chegar a isso com sql personalizado?

questionAnswers(4)

yourAnswerToTheQuestion