2010-06-04 68 views
1

我已經實現了一個UserProfile模型(正如Django 1.2文檔所說的是保存有關用戶的附加數據的正確方法),該模型有一個'remaining_vacation_hours'字段。正確的方法來爲Django用戶定義「剩餘時間」

在我們當前的系統中,當用戶填寫休假請求時,應該檢查剩餘的可用時間以查看他們是否有足夠的假期使用,否則會被警告他們要求的比他們多。

當然,假期的時間每年都會補充,因此係統應該檢查用戶是否會在他們要求退款的日期獲得額外的假期。

只需創建一個get_remaining_vacation_hours()方法即可,因爲未來可能需要添加的其他計算或業務邏輯可以添加到該方法或從該方法調用。

我的問題是,是否將get_remaining_vacation_hours()方法添加到UserProfile模型中聽起來正確嗎?

這似乎是有道理的,但我想驗證與社區,我沒有忽視這種類型的事情更好的做法。歡迎任何想法或建議。

回答

2

首先,我會建議制定不同方法的解決方案(如您已經建議的那樣),但在不同的類上並將用戶實例作爲參數傳遞。這樣,用戶的特徵就不是那些可能不適用於抽象層次的每個人的東西。例如,考慮潛在的員工,審計員,合作伙伴,承包商或其他類型的用戶。

如果你的系統永遠不會有這樣的用戶(或者至少很少),那麼我回應lazerscience的答案。根據我的經驗,即使是具有豐富設計經驗的經驗豐富的程序員也會根據用戶配置文件的不同而有所不同。相信你的直覺。如果「感覺」它可能不是痛苦或混亂的根源,那就去做吧。另請參閱:Jeff Atwood's關於這些事項的建議。

+0

感謝您提及可能的「其他用戶類型」。 – 2010-06-07 14:06:24

2

如果你不想修改/從原來的用戶模型繼承,我會說如果該方法被添加到你的UserProfile它完全沒問題!

+0

感謝您的完美真棒和簡潔的答案! – 2010-06-07 14:05:04