Je veux suivre le nombre d'animaux nés dans la gamme d'années donnée chaque année. Donc, je peux être en mesure de déterminer quelle année a le plus d'animaux nés. J'utilise ces données pour les rapports graphiques.Obtenir le nombre annuel dans la fourchette d'années donnée
class Animal(models.Model):
# omitted fields..
date_of_birth = models.DateField()
Maintenant, les années 2015 serait donnée à 2017. Je voudrais obtenir le résumé des animaux nés dans cette année.
E.g.
[
{'year': 2015, total: 10},
{'year': 2016, total: 15}
{'year': 2017, total: 4}
]
Jusqu'à présent, voici ce que je l'ai fait:
Animal.objects.filter(
date_of_birth__year__range = (
'2017', '2018'
)
).extra(
select={'year': 'YEAR(date_of_birth)'}
).values('year').annotate(total=Count('id')).values('year', 'total')
Mais obtenu ceci:
[
{
"total": 1,
"year": 2015
},
{
"total": 1,
"year": 2015
},
{
"total": 1,
"year": 2015
},
{
"total": 1,
"year": 2015
},
... and so on to 2017
]
Il n'a pas ajouté le total et il n'a pas regroupés par année.
Wow im étonner l'homme merci pour votre réponse, il fournit la bonne solution –