我正在尝试逐月注释,并完成此操作:
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
有什么想法吗?
答案 0 :(得分:0)
我没有对此进行测试,但明显的语法错误是" MONTH"需要在SQL中写为字符串,因此请尝试将模板行更改为:
template = "%(function)s('MONTH' from %(expressions)s)"
(这就是由month
查找内置的django创建的SQL无论如何都是如此。)