Bạn đã thử nhìn vào lược đồ của mình chưa? Tôi nghĩ rằng bạn vừa nhầm tên cột của mình.
Giả sử bạn đang sử dụng Djnago> =1.8, bạn cũng có thể tránh toàn bộ vấn đề bằng cách viết Func
như thế này:
class ExtractMonth(Func):
template = "EXTRACT(MONTH FROM %(expressions)s)"
def __init__(self, *expressions, **extra):
extra['output_field'] = SmallIntegerField()
super().__init__(*expressions, **extra)
và sử dụng nó như thế này:
Subscription.objects.annotate(Month=ExtractMonth('Modified'))\
.values('Month').annotate(Count('Month'))
Bằng cách này 'Modified'
là tên của trường trên mô hình của bạn và Django phân giải tên cột cho bạn.
Cập nhật
Có một giải pháp chung chung hơn được đề xuất trong phiếu 1.9 này .