【问题标题】:Incremental totals in Django ModelDjango 模型中的增量总计
【发布时间】:2021-12-26 10:24:34
【问题描述】:

我有一张如下表: Example Table

我有一个模型

class Hours(models.Model):
      name = model.Charfield(max_length =200)
      hours = DecimalField(max_digits = 6, decimal_places=2)

     def total_hours(self):
        queryset = Hours.objects.aggregate(total_hours=models.Sum('hours'))
        return queryset['total_hours']

现在,当我运行代码时,我得到的所有记录都有到 37,而不是它们的运行总数。

我在哪里漏掉了一步?

【问题讨论】:

  • 每当您调用 total_hours 时,它都会获取所有 Hours 对象的小时总和。你需要像 Hours.objects.filter(id__lte=self.id).aggregate(total_hours=models.Sum('hours')) 这样的东西来计算总和
  • 嗨@Henty 非常感谢你,请将其作为答案,以便我接受它作为解决方案。它完全符合我的需要
  • 完成,谢谢 :)

标签: django django-models django-templates


【解决方案1】:

每当您调用 total_hours 时,它都会获取所有 Hours 对象的小时总和。你需要类似的东西:

Hours.objects.filter(id__lte=self.id).aggregate(total_hours=models.Sum('hours')) 

总和

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-06-24
    • 1970-01-01
    • 2014-04-17
    • 1970-01-01
    • 2012-05-07
    • 1970-01-01
    相关资源
    最近更新 更多