スキーマを見てみましたか?列名が間違っていると思います。
Djnago> =1.8を使用していると仮定すると、Func
を作成することで、問題全体を回避することもできます。 このように:
class ExtractMonth(Func):
template = "EXTRACT(MONTH FROM %(expressions)s)"
def __init__(self, *expressions, **extra):
extra['output_field'] = SmallIntegerField()
super().__init__(*expressions, **extra)
次のように使用します:
Subscription.objects.annotate(Month=ExtractMonth('Modified'))\
.values('Month').annotate(Count('Month'))
このように'Modified'
はモデルのフィールドの名前であり、Djangoは列名を解決します。
更新