sql >> Base de Datos >  >> RDS >> PostgreSQL

django obteniendo el mes a partir de la fecha para la agregación

¿Intentaste mirar tu esquema? Creo que se equivocó de nombre de columna.

Suponiendo que está utilizando Djnago>=1.8, también puede evitar todo el problema escribiendo un 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)
       

y usándolo así:

Subscription.objects.annotate(Month=ExtractMonth('Modified'))\
                .values('Month').annotate(Count('Month'))

De esta manera 'Modified' es el nombre del campo en su modelo y Django resuelve el nombre de la columna por usted.

Actualizar

Hay una solución más genérica propuesta en este ticket 1.9 .