首页 文章

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

提问于
浏览
2

我需要在我的用户模型中有一些额外的字段,我不知道哪条是最好的路径 .

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

另一个想法是创建一个扩展AbstractUser的新模型,如here所做,并将其设置为AUTH_USER_MODEL,所以我必须一次只管理一个对象

任何建议?对于这样的情况,有没有最好的做法?

2 回答

  • 1

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

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

  • 2

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

    • 这使您可以使用django的身份验证和用户管理器

    • 您的应用可以在其他项目中重复使用

    • 您将浪费更少的时间在用户逻辑上

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

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

相关问题