Создание нескольких типов пользователей в django
Я хочу создать несколько типов пользователей в Django. Каждый тип имеет несколько уникальных атрибутов и несколько общих, таких как имя пользователя и email. Код ниже создает 3 таблицы с подключением один к одному к модели пользователя Account. Однако я хочу добавить поле choice в модель пользователя и хранить типы пользователей в кортежах, вместо создания переменных is_type1 is_type2 и т.д., но я не уверен, как связать эти типы с их классом.
Вот моя модель счета в models.py:
class Account(AbstractBaseUser):
email = models.EmailField(verbose_name='email', max_length=255, unique=True)
username = models.CharField(verbose_name='username', max_length=30, unique=True)
is_admin = models.BooleanField(default=False)
is_active = models.BooleanField(default=True)
is_staff = models.BooleanField(default=False)
is_superuser = models.BooleanField(default=False)
is_type1 = models.BooleanField(default=False)
is_type2 = models.BooleanField(default=False)
is_type3 = models.BooleanField(default=False)
objects = MyAccountManager()
USERNAME_FIELD = 'email'
REQUIRED_FIELDS = ['username']
def __str__(self):
return self.username
def has_perm(self, perm, obj=None):
return self.is_admin
def has_module_perms(self, app_label):
return True
А вот мои подклассы:
class Type1(models.Model):
account = models.OneToOneField(Account, on_delete=models.CASCADE, primary_key=True)
#unique attrs
def __str__(self):
return self.account.username
class Type2(models.Model):
account = models.OneToOneField(Account, on_delete=models.CASCADE, primary_key=True)
#unique attrs
def __str__(self):
return self.account.username
class Type3(models.Model):
account = models.OneToOneField(Account, on_delete=models.CASCADE, primary_key=True)
#unique attrs
def __str__(self):
return self.account.username