Django - Не удается войти в систему при создании подкласса Модель пользователя - PullRequest
2 голосов
/ 06 января 2012

Я искал похожий вопрос, но пока не нашел ни одного.

У меня есть подкласс пользователя (django.contrib.auth.models.User).Я хочу, чтобы мой сайт поддерживал как отдельных пользователей, так и бизнес-пользователей, поэтому в данном случае это:

class BusinessUser(User):
    website = models.CharField(max_length=20)
    objects = UserManager()

У меня есть форма регистрации, в которой пользователь сохраняется как пользователь, и еще одна форма, в которой мой пользователь сохраняется как BusinessUser.,Проблемным случаем является BusinessUser:

Я проверил через консоль Django, что после регистрации BusinessUser существует объект User и BusinessUser, и все поля в порядке (имя пользователя, адрес электронной почты, пароль).

Однако на моей странице входа в систему я не могу войти с помощью своего BusinessUser.Я могу войти в систему нормально с зарегистрированным обычным пользователем, но не с BusinessUser.

Кто-нибудь знает, что может быть не так?

Спасибо.

Ответы [ 2 ]

1 голос
/ 06 января 2012

Пользовательский бэкэнд аутентификации должен использоваться, когда django's User subclassed

Вы можете увидеть пример здесь

Я не проверял это, но я верю, что это будет работать.

1 голос
/ 06 января 2012

Вы вложили в подкласс User. Не делай этого когда-либо . Используйте профили для добавления дополнительных данных, и если вам действительно нужны две отдельные модели (скажем, для двух отдельных представлений для индивидуальных и бизнес-пользователей в администраторе), создайте прокси-модели и настраиваемые менеджеры, которые фильтруют только отдельных или бизнес-пользователей из User.

...