【问题标题】:Efficient week statistics for a QuerySet查询集的有效周统计
【发布时间】:2010-11-02 08:56:44
【问题描述】:

我正在开发一个开源 Django 时间跟踪应用程序Djime,并且我正在尝试提出一种更有效的方法来生成统计数据。到目前为止,我们已经有了一些相当冗长的程序代码,它们可以获取一段时间内的所有 TimeSlice,并将它们整理到一个巨大的嵌套列表/字典中。

我想做的是建立一个更高效的系统 - 一个对象或函数,它接受 TimeSlices 的 QuerySet 并按用户、任务和/或日期整理它们。

我们的模型看起来像这样(简化):

class TimeSlice(models.Model):
    task = models.ForeignKey(Task)
    user = models.ForeignKey(User)
    begin = models.DateTimeField(default=datetime.datetime.now)
    duration = models.PositiveIntegerField(null=True, blank=True) # Num. of seconds
    note = models.TextField(null=True, blank=True)

【问题讨论】:

    标签: django database-design django-models statistics django-queryset


    【解决方案1】:

    听起来您想要 Django 1.1 中的聚合功能。它已经在最近从trunk 结帐时可用。

    请参阅here 了解说明。

    【讨论】:

    • 我不确定这是否是一个好方法。据我了解,每个聚合函数都会对我们在 QuerySet 中已有的数据进行另一个查询。我宁愿拥有更多的 Python 代码而不是更多的数据库请求,因为 Python 前端比数据库服务器更容易扩展。
    猜你喜欢
    • 2021-11-07
    • 1970-01-01
    • 1970-01-01
    • 2018-03-09
    • 2013-04-03
    • 2020-10-21
    • 2012-08-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多