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 注册。每个用户都有自己的注册模板,我已经解决了这个问题。GenericUser 只有基本的通用字段,没有任何注册模板。我将它用作主要的 Auth 模型。

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

4

1 回答 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询问用户使用的是手机还是手机。

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

于 2013-10-12T19:13:24.037 回答