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.