1

我有两个 Django 应用程序被调用frontendaffiliates如下所示:

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 用户池,我会得到重复的用户名错误。谢谢!

4

2 回答 2

1

代替模型和自定义配置文件模型OneToOne之间的a ,您可以使用 a代替。然后在视图中,您可以检查并在视图中,)。UserForeignKeyUserAccountif hasattr(user, 'account')Affiliateif hasattr(user, 'affiliate

只需确保您不允许每个用户对象使用一种以上的每种类型的配置文件。您可以在视图或模型中执行此操作。我会说在这两个地方都这样做。

于 2013-08-11T00:06:36.940 回答
0

根据您告诉我们的内容,我会说:Account为前端用户创建一个模型,并在需要时使用 aForeignKey将该模型与模型相关联Affiliate

这样,每个人都使用相同的用户帐户登录,您可以通过访问Affiliate模型来查找用户的附属信息。

于 2013-08-10T23:41:31.097 回答