2015-07-13 30 views
1

我有一个关于为用户设计模型的问题。 它是一个更好的方法,如果你: 创建AbstractUser模型,并把所有额外的属性(如:电话,手机,传真)模型内部 VS 创建一个名为用户配置一个独立的模型,并使用与会员联系起来OneToOneField?AbstractUser属性vs UserProfile模型

回答

2

答案是在documentation

如果你有Django的用户模型完全满意,你只是想 添加一些额外的个人资料信息,你可以简单地继承 django.contrib.auth。 models.AbstractUser并添加您的自定义配置文件 字段,虽然我们建议使用单独的模型,如 “模型设计注意事项”中所述指定自定义用户模型。 AbstractUser提供默认用户的完整实现为 的抽象模型。

1

如果您只是想为用户存储额外的信息,那么请使用OneToOneField。但是,如果您希望在用户模型中进行行为更改(例如,您希望将电子邮件地址或电话号码用于登录,而不是用户名等),则可以从AbstractUser继承并创建自定义用户模型。

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