我想用 django 查询集来实现一些复杂的东西。我的模型如下所示:
class Mymodel(models.Model):
#Model Variables
year = models.IntegerField()
month = models.IntegerField()
date = models.DateField(_("Date"), default=datetime.date.today)
score = models.CharField(max_length=50)
很遗憾,
score' 不能从 CharField() 更改为 FloatField()
,它应该被保存为一个字符串。
我需要的是按年份和月份汇总所有分数。我尝试了这样的方法来对所有分数进行分组,但没有取得很大成功。
values = Mymodel.objects.all().values(
'year', 'month').annotate(Sum('score')).order_by('year', 'month')
在使用注释之前,我尝试通过这样做来投射“分数”。
values = Mymodel.objects.all().annotate(
scoreFloat=Cast('score', FloatField())
).values('year', 'month').annotate(
Sum('scoreFloat')).order_by('year', 'month')
再一次没有成功,因为我得到了 scoreFloat 参数的 KeyError 。
有什么建议么?