我有两个名为frontend
和affiliates
的Django应用程序,如下所示:
django/
manage.py
frontend/
__init__.py
models.py
views.py
affiliate/
__init__.py
models.py
views.py
我希望人们能够拥有两个帐户,他们会在domain.com/signup/
注册其前端帐户,并在domain.com/affilate/signup/
注册其关联帐户。
我对排序没有任何问题,但可以让他们同时登录这两个帐户吗?如果他们访问domain.com
页面,则会使用他们的前端帐户进行身份验证,如果他们访问domain.com/affiliate/
上的任何页面,则会在其关联帐户中对其进行身份验证。
我的帐户模型如下:
class Account(models.Model):
user = models.OneToOneField(User, db_index=True)
username = models.CharField(max_length=32, db_index=True, unique=True)
password = models.CharField(max_length=32)
email = models.CharField(max_length=128, db_index=True, unique=True)
前端。
class Affiliate(models.Model):
user = models.OneToOneField(User, db_index=True)
username = models.CharField(max_length=32, db_index=True, unique=True)
password = models.CharField(max_length=32)
email = models.CharField(max_length=128, db_index=True, unique=True)
对于关联公司。
是否可以拥有两组不同的django用户,因此user = models.OneToOneField(User, db_index=True)
字段与前端帐户的不同用户集相关联?因为我希望人们能够为两个帐户使用相同的用户名。如果他们都进入同一个django用户池,我将收到重复的用户名错误。谢谢!
答案 0 :(得分:1)
而不是OneToOne
模型与自定义配置文件模型之间的User
,而是ForeignKey
代替User
。然后在Account
次观看中,您可以获得if hasattr(user, 'account')
支票,Affiliate
次查看if hasattr(user, 'affiliate
)。
确保每个用户对象不允许使用多种类型的配置文件。您可以在视图或模型中执行此操作。我会说在两个地方都这样做。
答案 1 :(得分:0)
根据您告诉我们的内容,我会说:为前端用户创建一个模型Account
,并根据需要使用ForeignKey
将该模型与Affiliate
模型相关联
这样,每个人都使用相同的用户帐户登录,您可以通过访问Affiliate
模型来查找用户的联盟信息。