问题描述
让我们假设我在Django中有这样的模型,由下表和Model类表示(在数据库中,它作为视图存在):
id Name Year Month Project Name City Total
1 Joe Doe 2020 7 Project_A SomeCity 10
1 Joe Doe 2020 7 Project_A SomeCity 30
1 Joe Doe 2020 7 Project_A SomeCity 30
1 Joe Doe 2020 8 Project_A SomeCity 10
1 Joe Doe 2020 8 Project_A SomeCity 30
1 Joe Doe 2020 8 Project_A SomeCity 30
models.py:
class Model_View(models.Model):
employee_id = models.IntegerField(primary_key=True)
name = models.TextField()
year = models.IntegerField()
month = models.IntegerField()
project_name = models.TextField()
city = models.TextField()
total = models.IntegerField()
我期望的结果是:
id Name Year Month Project Name City Total
1 Joe Doe 2020 7 Project_A SomeCity 70
1 Joe Doe 2020 8 Project_A SomeCity 70
我尝试使用以下方法实现这一目标:
Model.objects.values().order_by('Project Name','Month').annotate(Total=Sum('Total'))
不幸的是,此操作的结果与预期的结果略有不同:
id Name Year Month Project Name City Total
1 Joe Doe 2020 7 Project_A SomeCity 60
1 Joe Doe 2020 7 Project_A SomeCity 10
1 Joe Doe 2020 8 Project_A SomeCity 60
1 Joe Doe 2020 8 Project_A SomeCity 10
乍一看,我认为这些记录是不同的,这就是为什么它没有归类在一起的原因,但是仔细查看后,我发现group_by应该可以处理这些记录。
那么,这里可能有什么问题?
编辑: 我认为从视图而不是从真实模型中检索数据可能很重要。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)