我有一个关于为用户设计模型的问题。 如果你这是一个更好的方法: 创建一个AbstractUser模型,并将所有额外属性(例如:电话,移动,传真)放入模型中 的 v.s 创建一个名为UserProfile的独立模型,并使用OneToOneField将其与成员链接?
答案 0 :(得分:2)
答案在documentation:
如果您对Django的用户模型完全满意并且您只是想要 添加一些额外的配置文件信息,您可以简单地子类 django.contrib.auth.models.AbstractUser并添加您的自定义配置文件 字段,虽然我们推荐一个单独的模型,如中所述 “模型设计注意事项”注意指定自定义用户模型。 AbstractUser提供默认User的完整实现 一个抽象的模型。
答案 1 :(得分:1)
如果您只想为用户存储额外信息,请使用OneToOneField。
但是,如果您希望在用户模型中进行行为更改,例如,您希望使用电子邮件地址或电话号码进行登录,而不是使用用户名或类似内容,则继承自AbstractUser并创建自定义用户模型。
我的建议是学习目的使用AbstractUser和AbstractBaseUser,即使你不需要也可以使用它。