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

首先,我建议制作不同方法的解决方案(正如您已经建议的那样),但在不同的类上并将用户实例作为参数传递。这样一来,您的用户就不会以可能不适用于该抽象级别的每个人的东西为特征。例如,考虑潜在的员工、审计员、合作伙伴、承包商或其他类型的用户。

如果您的系统永远不会有这样的用户(或至少很少),那么我会回应 lazerscience 的回答。根据我的经验,即使是经验丰富且具有丰富设计经验的程序员,也往往会在用户配置文件中应该包含哪些类型的信息和行为方面有所不同。相信你的直觉。如果它“感觉”它可能不是痛苦或混乱的根源,那就去吧。另请参阅:Jeff Atwood在此类问题上的建议。

于 2010-06-05T03:19:50.223 回答