PostgreSQL
 sql >> база данни >  >> RDS >> PostgreSQL

django получава месец от датата за агрегиране

Опитахте ли да разгледате вашата схема? Мисля, че просто сте сбъркали името на колоната си.

Ако приемем, че използвате 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 разрешава името на колоната вместо вас.

Актуализация

Има по-общо решение, предложено в този билет 1.9 .




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Ляво съединение с име на динамична таблица, получено от колона

  2. Как да актуализирате колона на таблица на Postgres с помощта на рамка с данни на pandas?

  3. Дали използването на Dev/Test RDS е лоша идея за вашия проект пред Production RDS?

  4. Грешка в Castle Activerecord е „връзката не съществува“ на Postgresql?

  5. качване на шев файл в postgres bytea колона колона е bytea, но изразът е от тип bigint