Django - Создание новой модели пользователя, расширяющей уже расширенную модель пользователя

Я начинаю новый проект и создал свою модель пользователя, расширяющую AbstractBaseUser, как показано ниже:

class NewUser(AbstractBaseUser, PermissionsMixin):

    email = models.EmailField( unique=True)
    user_name = models.CharField(max_length=150, unique=True)
    ...

Мне интересно, возможно ли и имеет ли смысл создавать своего пользователя (например, учителя) путем расширения NewUser и добавления всей информации профиля учителя. Это будет что-то вроде:

class Teacher(NewUser):

    role = models.CharField(max_length=150)
    title = models.CharField(max_length=150)
    date_of_birth = models.CharField(max_length=150)
    ...

Будет ли это хорошей практикой и позволит ли мне использовать встроенные методы аутентификации с DRS?

И даст ли это больше гибкости, если потом я захочу позволить другим пользователям (например, студентам) также зарегистрировать учетную запись и войти в систему?

Или разумнее просто использовать NewUser напрямую?

Буду очень признателен за совет/инсайт!

Я предлагаю использовать OneToOneField следующим образом:

class Teacher(models.Model):
    user = models.OneToOneField(NewUser, related_name='teacher')
    # Other fields that related to Teacher

class Student(models.Model):
    user = models.OneToOneField(NewUser, related_name='student')
    # Other fields that related to Student

Итак, модель NewUser будет отвечать только за login, signup и permissions.

Вернуться на верх