Django靠近“from”:语法错误,尝试按月注释

时间:2016-08-04 16:10:15

标签: django

我正在尝试逐月注释,并完成此操作:

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

然后

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

收到错误:

OperationalError: near "from": syntax error

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

我没有对此进行测试,但明显的语法错误是" MONTH"需要在SQL中写为字符串,因此请尝试将模板行更改为:

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

(这就是由month查找内置的django创建的SQL无论如何都是如此。)