要在Django中添加其他用户个人资料信息,似乎建议使用AUTH_PROFILE_MODEL
。
但是,在django.contrib.auth.models.User
表中直接添加其他配置文件字段是否有任何缺点?对我来说,这似乎更容易/更直接(虽然被授予,我还没有掌握使用信号)。
有没有非常强烈的实际理由反对这样做?
答案 0 :(得分:3)
我可以想到以下原因:
Django更新
每次更新Django时都必须更新contrib.auth
,这样就不会破坏您的应用程序,这是一个维护噩梦。使用AUTH_PROFILE_MODEL
方法可以使Django更新无痛,同时它提供了向User
添加新信息的功能。这被称为loose coupling我相信。
User
相关应用
严重依赖具有完全相同字段的User
的第三方应用程序将失败,例如,您向User
模型添加声明为NOT NULL
的字段或删除一些预期的字段到那里。
进一步阅读AUTH_PROFILE_MODEL
:
答案 1 :(得分:1)
简短回答,使用配置文件更易于维护。基于我的理解,建议不要做的是在更新Django版本后进行更改。如果您修改django.contrib.auth.models.User
模型,则更新后将删除更改,或者您将负责合并所做的任何更改(如果有)。另一方面,如果代码存在于您的应用程序中,例如配置文件,那么它更容易管理。基于此,如果你发现另一种方法可以实现相同的目标,或者如果你没有将其视为维护麻烦,那么它应该无论多么重要。