В моем приложении есть модель User
, в которой я хотел бы хранить основную информацию о пользователе, такую как адрес электронной почты, имя и фамилия, номер телефона и т. Д.
У меня также есть много разных типов пользователей в моей системе, включая торговых агентов, клиентов, гостей и т. Д.
Я хотел бы иметь возможность использовать ту же модель User
в качестве основы для всех остальных, чтобы мне не приходилось включать все поля для всех связанных ролей в одну модель, и я могу делегировать как необходимо (сокращение дублирующих полей базы данных, а также обеспечение легкой мобильности от смены одного пользователя одного типа на другой).
Итак, что бы я хотел, это:
User
-- first name
-- last name
-- email
--> is a "client", so
---- client field 1
---- client field 2
---- client field 3
User
-- first name
-- last name
-- email
--> is a "sales agent", so
---- sales agent field 1
---- sales agent field 2
---- sales agent field 3
and so on...
Кроме того, когда новый пользователь регистрируется, я хочу, чтобы этому новому пользователю автоматически была назначена роль «клиента» (я говорю здесь о полях базы данных, а не об авторизации, хотя я надеюсь в конечном итоге включить эту логику моя авторизация пользователя тоже). У меня есть мастер многоэтапной регистрации, который я пытаюсь собрать с помощью wizardly . Первый шаг прост, так как я просто вызываю поля, включенные в базовую модель User
(например, first_name
и email
), но второй шаг сложнее, так как он должен вызывать поля из связанных модель (как - в моем примере выше - модель client
с полями client_field_1
или client_field_2
, как если бы эти поля были частью User
).
Это имеет смысл? Дайте мне знать, если это не совсем понятно, и я постараюсь объяснить это по-другому.
Может кто-нибудь помочь мне с этим? Как бы я это сделал?