AbstractUser属性与UserProfile模型

时间:2015-07-13 05:39:26

标签: django django-models

我有一个关于为用户设计模型的问题。 如果你这是一个更好的方法: 创建一个AbstractUser模型,并将所有额外属性(例如:电话,移动,传真)放入模型中 的 v.s 创建一个名为UserProfile的独立模型,并使用OneToOneField将其与成员链接?

2 个答案:

答案 0 :(得分:2)

答案在documentation

  

如果您对Django的用户模型完全满意并且您只是想要   添加一些额外的配置文件信息,您可以简单地子类   django.contrib.auth.models.AbstractUser并添加您的自定义配置文件   字段,虽然我们推荐一个单独的模型,如中所述   “模型设计注意事项”注意指定自定义用户模型。   AbstractUser提供默认User的完整实现   一个抽象的模型。

答案 1 :(得分:1)

如果您只想为用户存储额外信息,请使用OneToOneField。

但是,如果您希望在用户模型中进行行为更改,例如,您希望使用电子邮件地址或电话号码进行登录,而不是使用用户名或类似内容,则继承自AbstractUser并创建自定义用户模型。

我的建议是学习目的使用AbstractUser和AbstractBaseUser,即使你不需要也可以使用它。