我想生成完成某事的各种里程碑的列表,每个里程碑的截止日期都是根据用户给出的最终日期动态计算的。
我不确定处理这个问题的最佳方法。我想到的第一个想法是在服务器上编写一些模板(这里不是 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 时计算的。所有步骤都是为每个用户生成的。