1

'remaining_vacation_hours'フィールドを持つUserProfileモデルを実装しました(Django 1.2のドキュメントによると、ユーザーに関する追加データを保存する適切な方法です)。

現在のシステムでは、ユーザーが休暇申請書に記入するときに、利用可能な残りの時間をチェックして、使用するのに十分な休暇があることを確認するか、そうでない場合は、ユーザーが持っている以上の休暇を求めていることを警告する必要があります。

もちろん、休暇時間は毎年補充されるので、ユーザーが希望する日付に追加の休暇が発生するかどうかをシステムがチェックするのが適切です。

get_remaining_vacation_hours()将来追加する必要があるかもしれない他の計算やビジネスロジックがそのメソッドに追加されたり、そのメソッドから呼び出されたりする可能性があるため、メソッドを作成するだけで十分です。

私の質問は、メソッドがUserProfileモデルに追加されるのは正しいと思いますか?get_remaining_vacation_hours()

それは理にかなっているようですが、私はこの種のことのより良い実践を見落としていなかったことをコミュニティに確認したかったのです。任意のアイデアや提案を歓迎します。

4

2 に答える 2

2

元の User モデルを変更/継承したくない場合は、メソッドが UserProfile に追加されていれば問題ありません。

于 2010-06-05T01:55:37.493 に答える
2

最初に、別のメソッドを作成する解決策を提案します (既に提案したように) が、別のクラスで、ユーザー インスタンスをパラメーターとして渡します。そうすれば、その抽象化レベルのすべての人には当てはまらないかもしれない何かによってユーザーが特徴付けられることはありません。たとえば、潜在的な従業員、監査人、パートナー、請負業者、またはその他のタイプのユーザーを考えてみましょう。

システムにそのようなユーザーがまったくいない場合(または少なくとも非常に少ない場合)、レーザーサイエンスの回答をエコーし​​ます。私の経験では、優れた設計経験を持つベテランのプログラマーでさえ、ユーザー プロファイルにどのような情報や動作を含めるかについてはさまざまな傾向があります。あなたの腸を信頼してください。それが痛みや混乱の原因ではないように「感じる」場合は、それを選択してください. 参照:このような問題に関するJeff Atwood のアドバイス。

于 2010-06-05T03:19:50.223 に答える