Django - Не удается войти в систему при создании подкласса Модель пользователя
Я искал похожий вопрос, но пока не нашел.
У меня есть подкласс пользователя (django.contrib.auth.models.User). Я хочу, чтобы мой сайт поддерживал как индивидуальных пользователей, так и бизнес-пользователей, поэтому в этом случае это:
class BusinessUser(User):
website = models.CharField(max_length=20)
objects = UserManager()
У меня есть форма регистрации, в которой пользователь сохраняется как пользователь, и еще одна форма, в которой мой пользователь сохраняется как BusinessUser. Проблемным случаем является BusinessUser:
Я проверил через консоль Django, что и пользователь, и объект BusinessUser существуют после регистрации BusinessUser, и все поля в порядке (имя пользователя, адрес электронной почты, пароль).
Однако на моей странице входа я не могу войти с помощью своего BusinessUser'а. Я могу войти в систему нормально с обычным пользователем, зарегистрированным, но не BusinessUser.
Кто-нибудь знает, что может быть не так?
Спасибо.
2 ответа
Вы подкласс User
, Не делай этого никогда. Используйте профили для добавления дополнительных данных, и если вам действительно нужны две отдельные модели (скажем, для двух отдельных представлений для индивидуальных и бизнес-пользователей в администраторе), создайте прокси-модели и настраиваемые менеджеры, которые фильтруют только отдельных или бизнес-пользователей User
,
Пользовательский бэкэнд аутентификации должен использоваться, когда у django User
подклассы
Вы можете увидеть пример здесь
Я не проверял это, но я верю, что это сработает.