2016-08-04 10 views
0

I annotate Datum Monat bin versucht und getan, um diese:Django in der Nähe "von": Syntaxfehler, versucht Monat mit Anmerkungen versehen

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

Und dann

MyModel.objects.annotate(month=Month('visited_at')) 
    .values('month') 
    .annotate(total=Sum('coins_counted')) 
    .order_by('month') 

Und immer Fehler:

OperationalError: near "from": syntax error 

Irgendwelche Ideen?

+0

Welche Datenbank verwenden Sie? Ich hatte ähnliche Probleme mit SQLITE, während der gleiche Code gut mit Postgres funktionierte. SQLITE hat sehr begrenzte Aggregatfunktionen: https://www.sqlite.org/lang_aggfunc.html – Davy

Antwort

0

habe mich nicht testen, aber ein scheinbarer Syntaxfehler ist, dass „MONAT“ als String in SQL geschrieben werden muss, so versuchen, die Linie zu dieser Vorlage ändern:

template = "%(function)s('MONTH' from %(expressions)s)" 

(Dies ist wie das von django erstellte SQL in month Lookup sowieso aussieht.)

+0

Immer noch der selbe Fehler. – mrsolupo

Verwandte Themen