Сайт с разной аутентификацией для студентов и сотрудников сайта в Django?

Я пытаюсь создать веб-приложение Django с двумя типами пользователей, студентами и сотрудниками. Проблема в том, что студенты должны входить в систему, используя свое полное имя и id номер (где имя не уникально, а id номер работает как пароль), но я не верю, что есть способ для Django позволить имени быть не уникальным (константа USERNAME_FIELD должна быть уникальной). У сотрудников есть другой логин, они могут войти в систему с обычным именем пользователя и паролем (имя пользователя должно быть уникальным). Также, поскольку есть два типа пользователей, я не знаю, что поставить для константы AUTH_USER_MODEL в settings.py, поскольку для этого может быть только одна модель. Как лучше всего настроить приложение, чтобы не столкнуться с этими проблемами?

Если я правильно понял ваш вопрос, вы хотите сохранить имена пользователей студентов "неуникальными" и хотите различать их с помощью уникальных паролей (Id номер).

Django не позволяет этого, потому что это не очень хорошая практика. Почему бы вам не рассмотреть возможность сохранения "Id номера" и "имени" в качестве пароля (что опять же не является хорошей практикой для сохранения "имени" в качестве пароля, но будет работать в Django)?

В противном случае, если вы хотите сделать то, что вы пытаетесь сделать, то вы можете написать свой собственный метод для аутентификации вместо использования встроенного метода Django. Это может быть не так безопасно, но я думаю, что ваш подход сам по себе не безопасен, так что это может сработать для вас.

Пробовали ли вы проверить панель администратора на наличие разрешений, которые вы можете установить?

Вернуться на верх