sql >> Database >  >> RDS >> PostgreSQL

django krijgt maand vanaf datum voor aggregatie

Heb je geprobeerd naar je schema te kijken? Ik denk dat je de naam van je kolom gewoon verkeerd hebt gebruikt.

Ervan uitgaande dat u Djnago>=1.8 gebruikt, kunt u het hele probleem ook vermijden door een Func te schrijven zoals deze:

class ExtractMonth(Func):
    template = "EXTRACT(MONTH FROM %(expressions)s)"

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

en het als volgt gebruiken:

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

Op deze manier 'Modified' is de naam van het veld op uw model en Django lost de kolomnaam voor u op.

Bijwerken

Er is een meer algemene oplossing voorgesteld in dit 1.9-ticket .




  1. Kan mysql-python niet importeren in crontab Mac OS

  2. Hoe CSV verwerken met 100k+ regels in PHP?

  3. Hoe het knooppuntpad voor nodejs (Ubuntu) in te stellen

  4. Foreign Key met meerdere kolommen:stel één kolom in op Null ON DELETE in plaats van alles