我正在使用这些模型开发一个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寄存器?我想我错过了什么。
答案 0 :(得分: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
询问用户是使用手机还是手机。
更具体的情况必须以类似的方式解决。