Возможно, некоторые из вас расскажут, что это повторяющаяся тема, но после прочтения многих статей она все еще кажется мне очень неоднозначной. Мой вопрос касается наилучшего способа использования и расширения модели User, сохраняющей механизмы аутентификации (и другие), доступные в Django. Тем не менее, я предпочитаю описывать свой дизайн:Дизайн модели лучших пользователей Django
- Есть пользователи (пациенты), которые могут зарегистрироваться, предоставляя базовую информацию (имя, фамилия, дата рождения, пол, адрес электронной почты, пароль). Предпочтительно электронная почта должна заменить имя пользователя.
- Когда пациент находится в приложении, он может зарегистрировать нового пациента (представить себе члена семьи), но не требуется электронная почта и пароль, потому что они не войдут в систему.
Для первой части документ Django предлагает расширить Пользователь с отношением OneToOne к профилю. Однако, чтобы заменить имя пользователя по электронной почте, они предлагают затем создать пользовательский пользователь, распространяющийся от AbstractUser, а также связанный UserManager. Второе требование похоже на отношение «один ко многим» от пользователей к пользователям. Итак, согласно Django, которая должна быть лучшей стратегией: создание совершенно новой модели пользователя и пользователь-пользователь «один ко многим», добавляющий специфический атрибут, который отличает основных пользователей и членов семьи? ИЛИ расширение пользователя Django с профилем, а затем профиль профиля отношения «один ко многим»? Какой вариант лучше всего сохраняет преимущества пользовательской аутентификации Django и администрирования модели?
Благодарим за любые комментарии, предложения, примеры.
Просто следуйте документам по электронной почте как имя пользователя. Если член семьи не будет входить в систему, это анонимный пользователь, а не настоящий пользователь. Просто создайте для них отдельную модель. – allcaps