我已经实现了一个 UserProfile 模型(正如 Django 1.2 文档所说,这是保存有关用户的附加数据的正确方法),它有一个“remaining_vacation_hours”字段。
在我们当前的系统中,当用户填写休假请求时,应检查剩余的可用时间以查看他们是否有足够的假期可以使用,否则会被警告他们要求的时间超过了他们的时间。
当然,休假时间每年都会补充,因此系统应该检查用户是否会在他们请假的日期累积额外的假期。
只需创建一个 get_remaining_vacation_hours()
方法就足够了,因为将来可能需要添加的其他计算或业务逻辑可以添加到该方法或从该方法调用。
我的问题是,将 get_remaining_vacation_hours()
方法添加到 UserProfile 模型听起来是否正确?
这似乎有道理,但我想向社区证明我没有忽略针对此类事情的更好做法。欢迎任何想法或建议。
最佳答案
首先,我建议采用不同的方法(正如您已经建议的那样),但在不同的类上并将用户实例作为参数传递的解决方案。这样,您的用户的特征就不会在该抽象级别上不适用于每个人。例如,考虑潜在的员工、审计员、合作伙伴、承包商或其他类型的用户。
如果您的系统永远不会有这样的用户(或者至少很少),那么我赞同 lazerscience 的回答。根据我的经验,即使是经验丰富且具有丰富设计经验的程序员也倾向于在用户配置文件中包含哪些信息和行为方面有所不同。相信你的直觉。如果它“感觉”它可能不是痛苦或困惑的根源,那就去做吧。另请参阅:Jeff Atwood's 诸如此类的建议。
关于python - 为 Django 用户定义 "remaining time off"的正确方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2977824/