2017-04-25 2 views
0

Ich möchte eine Ausgabe von {'Monat': 'Jan', 'Anzahl': 1600} bekommen, aber ich bekomme Folgendes mit dem aktuellen Code {'Monat': 1, 'zählen': 1600}. Wie mache ich das, so bekomme ich den Namen des Monats und nicht die ganze Zahl.Django Gruppe nach Monat Name

class Month(Func): 
    function = 'EXTRACT' 
    template = '%(function)s(MONTH from %(expressions)s)' 
    output_field = IntegerField() 

Note.objects.filter(
     email_status__in=status_list, 
     email_template__isnull=False, 
     creation_time__gt=one_year 
    ).annotate(
     month=Month('creation_time') 
    ).values('month').annotate(
     total_count=Count(
      'email_id', distinct=True) 
    ).values('total_count', 'month') 
+0

Welche Datenbank benutzen Sie? – Alasdair

+0

Ich benutze MySQL. –

Antwort

0

Sie könnten versuchen, DATE_FORMAT statt EXTRACT verwenden. Das Folgende ist nicht getestet.

class Month(Func): 
    function = 'EXTRACT' 
    template = "%(function)s(%(expressions)s, '%%b')" 
    output_field = CharField() 

Alternativ sollte es nicht allzu schwierig sein, die ganzen Zahlen zu konvertieren 1-12 ‚Januar‘ - ‚Dezember‘ in Python.