2015-12-04 32 views
2

我需要在我的用户模型中添加一些字段,我不知道哪个是最佳路径。是更好的扩展还是替代Django用户模型?

我的第一个想法是创建一个新的模型与我的领域,如解释here,但我希望它沿用户模型创建,它将需要分开处理,这可能是潜在的痛苦,因为我项目将主要基于Django的休息框架

另一个想法是创建扩展AbstractUser新模式,为完成here,并将其设置为AUTH_USER_MODEL,所以我会在某一时刻只管理一个对象

有什么建议吗?对于这种情况有没有最佳做法?

回答

2

这里讨论扩展用户模型。 https://docs.djangoproject.com/en/1.8/topics/auth/customizing/#auth-custom-user

从我看到的典型情况来看,使用附加字段创建用户配置文件表,而不是使用信号来侦听正在创建的任何新用户对象,以创建具有外键关系的用户配置文件对象auth用户。这样你就不会用django重写任何来自盒子的东西,而只是将用户配置文件字段扩展到另一个表中。

1

在您自己的“配置文件”模型中,最好使用与用户模型的OneToOne关系。

  • 这可以让你使用Django的认证和用户管理
  • 您的应用在其他项目中重复使用
  • 你会浪费用户逻辑更短的时间

这可省事的道路如果在某个时候需要不同类型的用户,或者项目必须重新使用(由您自己或其他人)。

Django的文档建议不要编写自己的用户模型。