Django модель пользователя. 1 учетная запись администратора, 1 учетная запись клиента с тем же адресом электронной почты и другим паролем - PullRequest
0 голосов
/ 13 апреля 2020

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

Будет портал администратора и клиентский портал (2 разные страницы входа).

  • Администратор может пригласить клиента
  • Администратор также может быть клиентом, может пригласить себя на портал клиентов
  • Учетная запись администратора не должна делиться тот же пароль, что и учетная запись клиента.
  • Электронная почта используется как уникальное поле для учетной записи администратора и клиента.

Например:

Учетная запись администратора - customer@email.com / пароль1 - Элемент списка

Учетная запись клиента - customer@email.com / пароль2

Решение 1: - Разрешение. Наличие 1 аккаунта с правами администратора и клиента. (Это не подходит для бизнес-случая)

На основе этой статьи: https://simpleisbetterthancomplex.com/tutorial/2018/01/18/how-to-implement-multiple-user-types-with-django.html

Решение 2: - Создание 2 django проектов. Один для каждой модели пользователя, поскольку обе учетные записи не могут совместно использовать пароль. Причина разделения на 2 проекта заключается в том, что такие ресурсы, как сеанс, вход в систему, выход из системы, не будут использоваться совместно. Таким образом, каждый портал (администратор, клиент) имеет свой ресурс.

  • Создание API клиента, позволяющее администратору создавать учетную запись клиента в проекте django клиента.

  • Общая база данных для совместного использования связанных данных

Это единственный способ справиться со случаем использования. Пожалуйста, дайте мне знать, если у кого-то есть лучшая идея справиться с этим.

1 Ответ

0 голосов
/ 13 апреля 2020

Попробуйте сначала задать в поле имени пользователя адрес электронной почты, если вы хотите, чтобы пользователь входил в систему по электронной почте, иначе помните, что имя пользователя - это то, как пользователь входит в систему. Затем создайте приложение профилей. В этом приложении создайте модель профиля, которая будет иметь отношение OneToOne с пользовательской моделью Django (Вы можете вызвать модель профиля через. User.profile). В этой модели профиля вы можете создать логическое поле, которое различает клиента и администратора. Таким образом, когда пользователь входит в систему, вы можете проверить свой профиль и отобразить соответствующий шаблон. Другой способ сделать это можно с помощью уже встроенной модели групп, создать 2 группы, одну для администратора, а другую для клиента, которую вы можете использовать, когда клиент регистрируется для автоматической установки в качестве клиента, а администраторов только для создания. Django администратору или отдельному порталу, если вы выберете.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...