何かを達成するためにさまざまなマイルストーンのリストを生成したいのですが、それぞれの期限は、ユーザーが指定した最終日から動的に計算されます。
これを処理する最善の方法についてはわかりません。私の頭に浮かんだ最初のアイデアは、すべてのステップを生成するために必要な情報を含むテンプレート(ここでは 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 メソッドに渡されます。
ただし、それが最善のアプローチであるかどうかはわかりません。何百万人もの人々が使用するわけではありませんが、サーバーのパフォーマンスに悪影響を与える可能性が心配ですか? より良い、おそらくよりpythonicな方法はありますか?
より明確にするためにEDIT:
ユーザーは、日付 D0 に何かを完了したいと考えています。
私のアプリは次のようなステップを生成します:
- 日付 D1i から日付 D1f までステップ 1 を実行します。
- ステップ 2 を日付 D2i から日付 D2f まで実行 -...
- 日付 D0 に到達し、すべてのタスクが完了するまで
D0 が提供されると、すべての日付が計算されます。すべてのステップは、すべてのユーザーに対して生成されます。