Создание нескольких типов пользователей в 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
Вернуться на верх