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