Django针对不同的URL进行不同的身份验证

我有两个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)字段与user = models.OneToOneField(User, db_index=True)帐户的不同用户组相关联系的是否为联属账户? 因为我希望人们能够为这两个帐户使用相同的用户名。 如果他们都陷入同一个django用户池中,我会得到重复的用户名错误。 谢谢!


而不是User模型和自定义配置文件模型之间的OneToOne ,而是可以为User提供一个ForeignKey 。 然后在Account视图中,您可以检查if hasattr(user, 'account')Affiliate视图中if hasattr(user, 'affiliate )。

只要确保您不允许每个用户对象的每种类型的配置文件中的一个以上。 你可以在视图或模型中做到这一点。 我会说这两个地方。


根据您告诉我们的情况,我会说:为前端用户创建一个模型Account ,并根据需要使用ForeignKey将该模型与Affiliate模型相关联。

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

链接地址: http://www.djcxy.com/p/5771.html

上一篇: Django different authentication for different URLs

下一篇: django: Is it possible to log a user into a subdomain, from another domain?