DRY方法在不使用Django中的Auth.user的情况下添加用户信息

时间:2013-08-17 18:29:02

标签: django persistent django-users django-profiles

我正在编写一个应用程序,我需要在Django中注册用户信息,即使用户不存在(还有)。基本上我需要插入几乎所有 Auth.user 使用的字段(我不关心密码)。我还创建了一个与 OneToOneField 连接的 配置文件 模型到 Auth.user 模型,我需要为那些尚不存在的用户填写这些文件。

如果用户稍后会在网站上注册(使用Auth.user),我会通过电子邮件找他,如果我找到他,我会合并我插入的信息和他提供的信息

问题: 实现用户持久性的最佳方法是什么,而不是重复创建彼此非常相似的模型?

1 个答案:

答案 0 :(得分:0)

我建议在User模型的date_joined或last_login字段中使用虚拟值,如果您想要实现解决方案而不添加新字段只是作为指示标记。

使用is_active标志的潜在问题是,您最终可能希望使用此标记“黑名单”或有效删除帐户而不实际从数据库中删除其记录(以防止重新创建具有该标记的帐户如果您开始依赖未设置密码的事实,那么如果您想要实现其他登录方法(OAuth)的那一天,那么在这些情况下也不会设置您的密码字段(巨大的冲突)。