Avez-vous essayé de regarder votre schéma? Je pense que vous vous êtes simplement trompé de nom de colonne.
En supposant que vous utilisez Djnago>=1.8, vous pouvez également éviter tout le problème en écrivant un Func
comme celui-ci :
class ExtractMonth(Func):
template = "EXTRACT(MONTH FROM %(expressions)s)"
def __init__(self, *expressions, **extra):
extra['output_field'] = SmallIntegerField()
super().__init__(*expressions, **extra)
et l'utiliser comme ceci :
Subscription.objects.annotate(Month=ExtractMonth('Modified'))\
.values('Month').annotate(Count('Month'))
Par ici 'Modified'
est le nom du champ sur votre modèle et Django résout le nom de la colonne pour vous.
Mettre à jour
Il existe une solution plus générique proposée dans ce ticket 1.9 .