我正在建立一个系统,除非特别提供,否则许多帐户将没有登录凭据(例如公司)。为此,我有以下帐户模型(尚未实现,目前正在设计中):
Table: Account
Fields: ID, fname, lname, type, created_at, activated_at
Table: AccountCredentials
Fields: Account ID, email, password
Relations:
Account <- 1-to-1 -> AccountCredentials
所有权限,操作等将在帐户模型上执行;因此,帐户模型将是django auth用户模型。
我以前使用过自定义的用户模型和管理器;但是,我不确定该如何实现。
我应该如何告诉AbstractBaseUser模型使用credentials.email
和credentials.password
(credentials
是Account和AccountCredentials之间的关系名称)进行身份验证?通过检查AbstractBaseUser源代码和检查一些文件,似乎我可以重写get_username
方法;这样就可以从凭据中读取用户名字段。但是,我不确定如何对密码进行相同的操作,因为它是在模型中硬编码的。