Django.db.utils.OperationalError: такой таблицы нет: auth_user; но работает с администратором DjangoPython

Программы на Python
Anonymous
Django.db.utils.OperationalError: такой таблицы нет: auth_user; но работает с администратором Django

Сообщение Anonymous »


Я новичок в django и узнаю, как создать собственную модель пользователя, используя Abstractuser в приложении «Мои учетные записи». Но при создании системы регистрации у меня возникла проблема: django.db.utils.OperationalError: нет такой таблицы: auth_user
URL-адрес запроса: http://localhost:8000/accounts/register/. Версия Джанго: 4.2.6 Версия Python: 3.11.6 Установленные приложения: ['django.contrib.admin', 'джанго.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', 'accounts.apps.AccountsConfig'] Установленное промежуточное ПО: ['django.middleware.security.SecurityMiddleware', 'django.contrib.sessions.middleware.SessionMiddleware', 'django.middleware.common.CommonMiddleware', 'django.middleware.csrf.CsrfViewMiddleware', 'django.contrib.auth.middleware.AuthenticationMiddleware', 'django.contrib.messages.middleware.MessageMiddleware', 'django.middleware.clickjacking.XFrameOptionsMiddleware'] Traceback (последний вызов последний): Файл «/data/data/com.termux/files/usr/lib/python3.11/site-packages/django/db/backends/utils.py», строка 89, в _execute вернуть self.cursor.execute(sql, параметры) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Файл "/data/data/com.termux/files/usr/lib/python3.11/site-packages/django/db/backends/sqlite3/base.py", строка 328, выполняется вернуть super().execute(запрос, параметры) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Вышеупомянутое исключение (нет такой таблицы: auth_user) стал непосредственной причиной следующего исключения: Файл «/data/data/com.termux/files/usr/lib/python3.11/site-packages/django/core/handlers/Exception.py», строка 55, во внутреннем ответ = get_response (запрос) ^^^^^^^^^^^^^^^^^^^^^^ Файл «/data/data/com.termux/files/usr/lib/python3.11/site-packages/django/core/handlers/base.py», строка 197, в _get_response ответ = обернутый_callback(запрос, *callback_args, **callback_kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^ Файл "/data/data/com.termux/files/usr/lib/python3.11/site-packages/django/views/generic/base.py", строка 104, на виду вернуть self.dispatch(запрос, *args, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Файл «/data/data/com.termux/files/usr/lib/python3.11/site-packages/django/views/generic/base.py», строка 143, в отправке обработчик возврата (запрос, *args, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Файл «/data/data/com.termux/files/home/qrkeeper/accounts/views.py», строка 55, в сообщении пользователь.сохранить() ^^^^^^^^^^^ Файл «/data/data/com.termux/files/usr/lib/python3.11/site-packages/django/contrib/auth/base_user.py», строка 76, в сохранении super().save(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Файл "/data/data/com.termux/files/usr/lib/python3.11/site-packages/django/db/models/base.py", строка 814, в сохранении self.save_base( ^ Файл «/data/data/com.termux/files/usr/lib/python3.11/site-packages/django/db/models/base.py», строка 877, в save_base обновлено = self._save_table( Файл «/data/data/com.termux/files/usr/lib/python3.11/site-packages/django/db/models/base.py», строка 1020, в _save_table результаты = self._do_insert( Файл «/data/data/com.termux/files/usr/lib/python3.11/site-packages/django/db/models/base.py», строка 1061, в _do_insert менеджер возврата._insert( Файл «/data/data/com.termux/files/usr/lib/python3.11/site-packages/django/db/models/manager.py», строка 87, в менеджере_метода return getattr(self.get_queryset(), name)(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^ Файл «/data/data/com.termux/files/usr/lib/python3.11/site-packages/django/db/models/query.py», строка 1805, в _insert return query.get_compiler(using=using).execute_sql(returning_fields) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^ Файл «/data/data/com.termux/files/usr/lib/python3.11/site-packages/django/db/models/sql/compiler.py», строка 1822, в Execute_sql курсор.execute(sql, параметры) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Файл «/data/data/com.termux/files/usr/lib/python3.11/site-packages/django/db/backends/utils.py», строка 102, выполняется вернуть super().execute(sql, параметры) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Файл "/data/data/com.termux/files/usr/lib/python3.11/site-packages/django/db/backends/utils.py", строка 67, в процессе выполнения вернуть self._execute_with_wrappers( Файл «/data/data/com.termux/files/usr/lib/python3.11/site-packages/django/db/backends/utils.py», строка 80, в _execute_with_wrappers исполнитель возврата (sql, параметры, многие, контекст) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Файл «/data/data/com.termux/files/usr/lib/python3.11/site-packages/django/db/backends/utils.py», строка 84, в _execute с self.db.wrap_database_errors: ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Файл «/data/data/com.termux/files/usr/lib/python3.11/site-packages/django/db/utils.py», строка 91, в __exit__ поднять dj_exc_value.with_traceback(traceback) из exc_value ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^ Файл «/data/data/com.termux/files/usr/lib/python3.11/site-packages/django/db/backends/utils.py», строка 89, в _execute вернуть self.cursor.execute(sql, параметры) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Файл "/data/data/com.termux/files/usr/lib/python3.11/site-packages/django/db/backends/sqlite3/base.py", строка 328, выполняется вернуть super().execute(запрос, параметры) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Тип исключения: OperationalError в /accounts/register/ Значение исключения: такой таблицы нет: auth_user``` Просмотр регистрации моих аккаунтов/views.py:
Регистр класса(Просмотр):

def get(self, request): если request.user.is_authenticated: messages.info(запрос, «Вы уже вошли в систему») вернуть перенаправление («индекс») возврат рендеринга (запрос, «accounts/register.html») def post(сам, запрос): passwd1 = request.POST.get("пароль1", "") passwd2 = request.POST.get("пароль2", "") если пароль1 != пароль2: messages.warning(запрос, «Пароль не соответствует») return redirect("учетные записи:регистрация") электронная почта = request.POST.get("электронная почта", "") пользователь = аутентификация (электронная почта = электронная почта, пароль = passwd1) если пользователь Нет: пользователь = Пользователь(электронная почта=электронная почта) user.set_password(passwd1) пользователь.сохранить() messages.success(запрос, «Пользователь создан») return redirect("учетные записи:логин") еще: messages.info(запрос, «Пользователь уже существует.») return redirect("accounts:register")``` Модель пользователя (accounts/models.py):

из django.contrib.auth.models import AbstractUser из моделей импорта django.db из django.utils.translation импортируйте gettext как _ из .managers импортировать UserManager Пользователь класса (AbstractUser): имя пользователя = Нет электронная почта = models.EmailField(_('адрес электронной почты'), unique=True) USERNAME_FIELD = 'электронная почта' ОБЯЗАТЕЛЬНЫЕ_ПОЛЯ = [] объекты = UserManager() защита __str__(сам): return f'User({self.id}, "{self.email}")' accounts/managers.py

из django.contrib.auth.base_user import BaseUserManager из django.utils.translation импортируйте gettext как _ класс UserManager (BaseUserManager): """ Пользовательский менеджер моделей пользователей. """ use_in_migration = Истина def create_user(self, адрес электронной почты, пароль, **extra_fields): если не электронная почта: поднять ValueError(_('Пользователи должны иметь адрес электронной почты')) электронная почта = self.normalize_email(электронная почта) пользователь = self.model(email=email, **extra_fields) user.set_password(пароль) пользователь.сохранить() вернуть пользователя def create_superuser(я, адрес электронной почты, пароль, **extra_fields): extra_fields.setdefault('is_staff', True) extra_fields.setdefault('is_superuser', True) extra_fields.setdefault('is_active', True) если extra_fields.get('is_staff') не имеет значения True: поднять ValueError(_('У суперпользователя должно быть is_staff=True.')) если extra_fields.get('is_superuser') не имеет значения True: поднять ValueError(_('У суперпользователя должно быть is_superuser=True.')) return self.create_user(адрес электронной почты, пароль, **extra_fields) Что я пробовал:
[*]python Manage.py makemigrations && python Manage.py мигрировать [*]Удалить файл миграции из приложения «Мои учетные записи». И снова выполните первый шаг.
Когда я пытаюсь создать пользователя с помощью createuperuser, django Admin и оболочки django; он работает отлично, без каких-либо ошибок. Ошибка возникает только тогда, когда я вызываю save() в своем представлении регистра.

Вернуться в «Python»