Учетные данные аутентификации Django отделены от пользовательских данных - PullRequest
0 голосов
/ 05 января 2019

Я строю систему, в которой у многих учетных записей не будет учетных данных (например, компаний), если не указано иное. Чтобы добиться этого, у меня есть следующая модель аккаунта (еще не реализована, в настоящее время проектируется на листе бумаги):

Table: Account
  Fields: ID, fname, lname, type, created_at, activated_at

Table: AccountCredentials
  Fields: Account ID, email, password

Relations:
  Account <- 1-to-1 -> AccountCredentials

Все разрешения, операции и т. Д. Будут выполняться над моделью Аккаунта; Итак, модель Account будет моделью пользователя Django Auth.

До этого я пользовался пользовательскими моделями и менеджерами; Тем не менее, это то, что я не уверен, как реализовать.

Как мне сказать модели AbstractBaseUser для аутентификации с использованием credentials.email и credentials.password (credentials - это имя отношения между Account и AccountCredentials)? После проверки исходного кода AbstractBaseUser и проверки некоторых файлов кажется, что я могу переопределить метод get_username; так что поле имени пользователя читается из учетных данных. Однако я не уверен, как сделать то же самое для пароля, так как он жестко задан в модели.

...