Где хранится модель пользователя в django? - PullRequest
0 голосов
/ 16 марта 2020

User модель в django.contrib.auth.models.

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

Я использую PostgreSQL в качестве базовой базы данных вместо sqlite.

Миграция прошла успешно до того момента, когда в моей базе данных postgres были созданы соответствующие таблицы.

Я предполагаю, что в таблице auth_user хранятся все данные зарегистрированного пользователя.

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

Затем я очищаю содержимое таблицы auth_user, чтобы начать ее заново sh.

Но теперь, когда я регистрируюсь с тем же именем пользователя, я получаю сообщение A user with this username already exists. под поле имени пользователя в моей форме. Как это возможно? Я очистил содержимое таблицы auth_user в своей базе данных Postgres.

Затем я создаю отдельное представление для отображения содержимого модели User, принадлежащей django.contrib.auth.models, и обнаружил, что имя пользователя, которое я зарегистрировал ранее отображается, хотя таблица auth_user в настоящее время пуста.

Мне действительно интересно это. Я что-то пропустил? Просьба уточнить. Я смиренно извиняюсь за большую переписку.

1 Ответ

0 голосов
/ 16 марта 2020

Потратив много времени на отладку всей моей установки, я понял проблему. Settings.py ссылался на другую базу данных.

Я обновил переменную среды, в которой сохранено имя базы данных. Но по какой-то причине обновленное мной значение не используется, и в настоящее время используется база данных предыдущего проекта. Тем не менее, это подтверждает, что модель User правильно хранится в базе данных.

Я проверил ее, выяснив имя базы данных через python manage.py shell, выполнив следующее:

In [1]: from django import db

In [2]: db.connections.databases

It отображаемое имя базы данных, на которое ссылаются в данный момент, и отображаемое имя базы данных было не тем, которое предполагалось.

Переменная среды DB_NAME не была обновлена ​​с последним значением settings.py, потому что я забыл перезапустить командную строку.

Я прошу прощения за путаницу. С моей стороны это была проблема конфигурации.

Спасибо Андрей Нелюбин и Виллем Ван Онсем за то, что вы уделили этому время.

...