мне надо расширыть пользователя, но типов пользователей которые имеюй собственные поля больше одного и как это реализовать, что бы когда выбирал Студента билы одни поля а когда выбирал Учителя выводились другие поля. А поля 1к1(username, password, email) оставались без изменений?
Я бы на твоем месте сделал так:
Все таки унаследовался бы от AbstractUser и добавил туда поле type_profile со значениями{ 1: 'учитель', 2: 'студент', ...}
Создал Profiles с моделями:
ProfileTeacher и ProfileStudent обе их привязал бы к User OneToOne, в обеих моделях определи поля которые соответствуют только своему профилю!
При регистрации пользователь вводит email/username и password и выбирает кто он учитель или студент, если все верно сохраняешь модель User и по сигналу
создаешь пустой соответствующий профиль и переадресовываешь на форму где можно заполнить оставшиеся поля.
Email дублировать не надо и модель юзера больше менять не надо, только профиль.