这是我在这里的第一个问题,但是S.O.是我在使用Django开发编码技能时的主要参考和支持。
感谢所有参与SO的人!
我的主要问题是:根据您的经验,您需要在何种情况下扩展用户模型?这是常见的事吗? ...我读过的所有教程和博客都说..."例如,如果你想使用一个用户名的电子邮件"。但这对我来说并不是一个真正的理由,我还没有找到其他原因。
如果我想使用电子邮件作为用户名,我可以使用字段创建用户创建表单以获取用户名并仅允许电子邮件。这样可以完美地解决问题吗?
在我的情况下,我跟随Django官方推荐:
强烈建议设置自定义用户模型,即使是 默认用户模型就足够了。这个模型表现得很好 与默认用户模型完全相同,但您可以自定义 如果需要,它将来会发生。
所以我这样做了:
from django.contrib.auth.models import AbstractUser
class User(AbstractUser):
pass
我准备好了,但准备好了什么?请点缀我。
我的问题的第二部分是:让我们想象未来我想要注册有关我博客用户的更多信息(国家/地区,性别等)......是否有可能创建一个配置文件表并将其与我的扩展用户模型一对一关系指向它(除了为未来做好准备之外什么都不做)?我现在应该删除并再次创建数据库吗?
非常感谢,如果我写得太多,我很抱歉。
祝你好运, goka。
答案 0 :(得分:0)
如果您的网站需要收集更多用户信息,例如公司,电话,邮政编码。此外,您可能需要对用户进行分类,例如,level_1,level_2,用户模型中无法定义的内容。然后,最好创建一个配置文件模型。
如果您已经注册了一些用户,那么您添加了新的配置文件模型,这可能会导致您将来的编码非常混乱,例如,一年之后,您或其他软件工程师可能会认为所有用户都有'个人资料&#39 ;并直接使用user.profile.something而不检查是否存在配置文件或用户,这将引发异常。