首页 文章

使用Django 1.5的多个用户类型,自定义字段和共享身份验证

提问于
浏览
1

我正在开发这些模型的Django应用程序:

class GenericUser(AbstractBaseUser, PermissionsMixin):
    email = models.EmailField(max_length=254, unique=True)
    ....

class Usertype1(GenericUser):
    phone = models.CharField(max_length=20, blank=False)
    ....

class Usertype2(GenericUser):
    mobile = models.CharField(max_length=20, blank=False)
    ....

我正在使用django-registration . 每个用户都有自己的注册模板,我已经解决了这个问题 . GenericUser仅具有基本公共字段,并且没有任何注册模板 . 我正在使用它作为主要的Auth模型 .

当我尝试注册为Usertype1或Usertype2的新用户时,问题就出现了 . Django退回并创建一个新的GenericUser元素,而不在Usertype1 / 2表中做任何事情 . 我的问题是:我是否需要做其他事来创建Usertype寄存器?我想我错过了一些东西 .

1 回答

  • 1

    Django仅支持一个身份验证用户 . 您的情况的最佳解决方案是使用具有两个字段的默认用户:

    phone = models.CharField(max_length=20, blank=False)
    mobile = models.CharField(max_length=20, blank=False)
    

    并制作一个表格,以确认您需要手机或手机 . 另一种选择是:

    phone = models.CharField(max_length=20, blank=False)
    is_mobile = models.BoleanField()
    

    并使用 is_mobile 询问用户是使用手机还是手机 .

    必须以类似的方式解决更具体的情况 .

相关问题