Django用户模型。 1个管理员帐户,1个具有相同电子邮件地址和不同密码的客户帐户

我正在尝试处理我有2个角色的用例。 (管理员,客户)

将有一个管理门户和一个客户门户(2个不同的登录页面)。

  • 管理员可以邀请客户
  • 管理员也可以是客户,也可以邀请自己进入客户门户
  • 管理员帐户不得与客户帐户共享同一密码。
  • 电子邮件被用作管理员和客户帐户的唯一字段。

例如:

管理员帐户 -customer@email.com / password1 -列表项

客户帐户 -customer@email.com / password2

解决方案1: -许可。具有1个具有管理员权限和客户权限的帐户。 (这无法适应商务用例)

基于本文: https://simpleisbetterthancomplex.com/tutorial/2018/01/18/how-to-implement-multiple-user-types-with-django.html

解决方案2: -创建2个django项目。每个用户模型一个,因为两个帐户不能共享密码。分成两个项目的原因是因为不会共享诸如会话,登录,注销之类的资源。因此,每个门户网站(管理员,客户)都有自己的资源。

  • 创建客户API,允许管理员在客户django项目中创建客户帐户。

  • 共享相关数据的共享数据库

这是我想到的处理用例的唯一方法。请让我知道是否有人有更好的主意来解决这个问题。

yxfy209 回答:Django用户模型。 1个管理员帐户,1个具有相同电子邮件地址和不同密码的客户帐户

如果您希望用户通过电子邮件登录,请尝试首先将用户名字段设置为电子邮件,否则请记住用户名是用户登录的方式。接下来,创建一个配置文件应用程序。在此应用中,创建一个配置文件模型,该模型将与Django用户模型具有OneToOne关系(您可以通过user.profile调用该配置文件模型)。在此配置文件模型中,您可以创建一个布尔字段,以区分客户和管理员。这样,当用户登录时,您可以检查那里的配置文件并呈现适当的模板。另一种执行此操作的方法是通过已内置的“组”模型,为管理员创建两个组,为客户创建另一个组,当客户注册时,可以自动将其设置为客户,并且仅创建管理员转到Django管理员或您选择的单独门户。

本文链接:https://www.f2er.com/2455857.html

大家都在问