是更好地扩展或替代Django用户模型?

时间:2015-12-04 16:00:56

标签: django django-models

我需要在我的用户模型中添加一些其他字段,而且我不知道哪条字段最适合。

我的第一个想法是使用我的字段创建一个新模型,如here所述,但我希望它是沿用户模型创建的,并且需要单独处理,这可能是潜在的因为我的项目将基于django-rest-framework

而非常痛苦

另一个想法是创建一个扩展AbstractUser的新模型,完成here,并将其设置为AUTH_USER_MODEL,因此我一次只能管理一个对象

有什么建议吗?对于这样的情况,有没有最好的做法?

2 个答案:

答案 0 :(得分:2)

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

从我通常看到的,用户配置文件表创建了附加字段,而不是应该使用信号来监听正在创建的任何新用户对象,以创建具有与auth的外键关系的用户配置文件对象用户。这样你就不会用django重写任何开箱即用的东西,只是将用户配置文件字段扩展到另一个表中。

答案 1 :(得分:1)

最好在您自己的“个人资料”中使用OneToOne与用户模型的关系。模型。

  • 这使您可以使用django的身份验证和用户管理器
  • 您的应用可以在其他项目中重复使用
  • 您将在用户逻辑上浪费更少的时间

如果在某些时候需要不同类型的用户,或者项目必须重复使用(由您自己或其他人),这可以节省麻烦。

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