0

我想生成完成某事的各种里程碑的列表,每个里程碑的截止日期都是根据用户给出的最终日期动态计算的。

我不确定处理这个问题的最佳方法。我想到的第一个想法是在服务器上编写一些模板(这里不是 django 模板)文件,其中包含生成所有步骤所需的信息,每个新用户都会获取一次,并用于创建一个列表里程碑类的里程碑对象(django 中的一些通用模型)。也许用 json 写的东西:

{"some_step":
  {
  "start_date" = "final_date-10",
  "end_date" = "final_date-7",
  }
}

和对应的型号

class Milestone(models.Model):
    name = models.Charfield()
    start_date = models.DateField()
    end_date = models.DateField()

    def time_to_final(self,time):
        return self.final_date-time

在为数据库中的新用户初始化数据时,诸如“finaldate-10”之类的字符串将被一些例程转换并在注册时传递给 time_to_final 方法。

但是我不确定这是最好的方法。虽然它不会被数百万人使用,但我担心可能会对服务器性能产生负面影响?有没有更好的,也许更蟒蛇的方式?

编辑以获取更多说明:

用户想要在日期 D0 完成某事。

我的应用程序生成如下步骤:

  • 从日期 D1i 到日期 D1f 执行步骤 1
  • 从日期 D2i 到日期 D2f 执行步骤 2 -...
  • 直到到达日期 D0 并且所有任务都已完成

所有日期都是在提供 D0 时计算的。所有步骤都是为每个用户生成的。

4

1 回答 1

2

模板与此有什么关系?首先设计您的模型-也许您需要一个Steps具有外键User和外键的模型Milestone(或者可能没有-我从您的描述中不清楚)。

只有当您清楚地了解数据时,才开始考虑模板等。

django 的伟大之处在于,一旦您制作了模型,您就可以使用管理界面输入一些数据。很快就会清楚你是否正确地模拟了你的问题。

不要担心性能,让你的数据结构清晰,让它工作,如果你发现它运行得不够快(不太可能)优化它。

于 2012-05-22T22:22:34.680 回答