Как мне создать две системы регистрации?

#python #djan&o #djan&o-models #djan&o-forms

#python #djan&o #djan&o-модели #djan&o-forms

Вопрос:

Итак, я хотел создать 2 варианта регистрации на веб-сайте. Например, методы входа ученика и учителя. Я хочу расширить форму или модель и сохранить ее в базе данных sqlite3. Например, если учащийся зарегистрируется, в базе данных будет сохранено поле isteacher = False и наоборот.

Также после входа в систему есть ли способ отобразить две разные панели мониторинга в зависимости от пользователя?

Есть ли какое-нибудь руководство или ссылка, чтобы показать мне, как создать это шаг за шагом? Я потратил около 8 часов, выясняя это, и я очень близок к тому, чтобы сдаться. Спасибо за ваше время.

Ответ №1:

Для этого не нужны две формы регистрации, если учащиеся и преподаватели используют одни и те же учетные данные (например, имя пользователя / адрес электронной почты и пароль). Просто добавьте селектор, чтобы пользователи могли идентифицировать себя. Если они не собираются использовать одинаковые учетные данные, создайте базовое представление для общих полей, затем создайте отдельные представления регистрации, наследуемые от этого базового представления.

Вам нужно расширить User, чтобы добавить дополнительные поля, такие как is_teacher (хотя я рекомендую вам использовать CharField с вариантами выбора, чтобы вы могли добавлять дополнительные типы пользователей в будущем), есть несколько способов сделать это, подробно объясненных в документации Djan&o, в вашем случае настройка пользовательской модели пользователя через AbstractUser кажется лучшей, поскольку я предсказываю, что вы будете расширять эту модель дальше.

Вы можете использовать UserPassesTestMixin или user_passes_test decorator для условного изменения представлений для разных типов пользователей.