我写了我的第一个应用程序Django 2.0
。
id
当我意识到将主键字段从默认integer
类型替换UUID
为使数据库条目更安全时,一切工作正常,应用程序几乎准备就绪。
当我搜索如何更改id
用户表时,UUID
我得到了许多扩展的教程AbstractBaseUser
。
这是我写了自己的User
模型。
帐户/models.py
class User(AbstractBaseUser):
id = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False)
但我对不同来源的例子更加困惑。
每个示例都在扩展模型中添加了更多字段,例如
first_name
last_name
is_staff
is_admin
active
和功能为
def get_fullname(self):
def get_shortname(self):
etc.
我认为所有这些字段和函数都默认存在于AUTH_USER_MODEL
.
是否扩展AbstractBaseUser
覆盖AUTH_USER_MODEL
并且需要添加默认情况下存在的所有字段?
另外,我settings.AUTH_USER_MODEL
在不同的模型中用作外键。应该用account.User
模型代替吗?
我还使用django-allauth
插件来启用使用社交网络登录并仅使用电子邮件进行身份验证。我是否需要email
在扩展模型中添加字段unique=True
?