PostgreSQL
 sql >> Base de Dados >  >> RDS >> PostgreSQL

django obtendo o mês da data para agregação


Você tentou olhar para o seu esquema? Acho que você errou o nome da coluna.

Supondo que você esteja usando o Djnago>=1.8, você também pode evitar todo o problema escrevendo um Func como este:
class ExtractMonth(Func):
    template = "EXTRACT(MONTH FROM %(expressions)s)"

    def __init__(self, *expressions, **extra):
        extra['output_field'] = SmallIntegerField()
        super().__init__(*expressions, **extra)
       

e usando assim:
Subscription.objects.annotate(Month=ExtractMonth('Modified'))\
                .values('Month').annotate(Count('Month'))

Desta forma 'Modified' é o nome do campo em seu modelo e o Django resolve o nome da coluna para você.

Atualizar


Existe uma solução mais genérica proposta neste este ticket 1.9 .