Django генерирует операционную ошибку с подставленной моделью аутентификации - PullRequest
0 голосов
/ 10 мая 2018

заранее извиняюсь, если это дублирующий вопрос.Насколько мне известно, я не смог найти этот вопрос.

Используя Django 2.0, я заменил встроенный django.contrib.auth своей собственной моделью Users, расширив ее с помощью AbstractUser.Модель Users зависит от существующей таблицы в MySQL, которая настроена для работы с Django.Django не обнаруживает никаких проблем при выполнении проверки;однако я получаю следующую ошибку:

OperationalError at / (1054, "Unknown column 'users.last_login' in 'field list'")

Я добавил столбец в таблицу, думая, что это полезное поле, но опасался, потому что подумал, что получу еще одну ошибку для другого отсутствующего поля,И вот:

OperationalError at / (1054, "Unknown column 'users.is_superuser' in 'field list'")

Смысл подстановки пользовательской модели таков, что я могу отбросить неважные поля, такие как «имя пользователя».Мне просто нужно добавить каждый столбец в таблицу, пока я не получу все поля авторизации в таблице, или я делаю что-то в корне неправильно?

TL; DR: Как создать собственный метод аутентификации для Django с использованием существующей таблицы?

1 Ответ

0 голосов
/ 11 мая 2018

Как вы говорите, вы получаете эти ошибки, потому что в вашей таблице нет столбцов для полей, определенных в AbstractUser модели. Самое простое решение - просто добавить все недостающие поля в вашу таблицу.

В качестве альтернативы, если вы хотите избежать этого, вы можете вместо этого иметь подкласс пользовательской модели AbstractBaseUser. Эта абстрактная модель имеет только поля для password и last_login. Обратите внимание, что этот подход будет немного больше работы. Кажется, это хорошее руководство о том, как это сделать:

https://simpleisbetterthancomplex.com/tutorial/2016/07/22/how-to-extend-django-user-model.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...