Джанго - Нет такой таблицы: main.auth_user__old - PullRequest
0 голосов
/ 05 декабря 2018

Я следовал первому руководству по приложению из официальных документов Django и получил эту ошибку при попытке сохранить некоторые изменения, сделанные через страницу администратора.Я провел некоторые исследования, но возможные решения, которые я смог найти, такие как перенос базы данных, просто не сработают.Просто дайте мне знать, если вы хотите увидеть какую-то конкретную часть моего кода.

Ниже приведена ошибка:

OperationalError в / admin / polls / question / 1 / change / no suchtable: main.auth_user__old Метод запроса: URL запроса POST: http://127.0.0.1:8000/admin/polls/question/1/change/ Версия Django: 2.1.4 Тип исключения: OperationalError Значение исключения: нет такой таблицы: main.auth_user__old Расположение исключения: / Users / gfioravante / Projects / test_app /ta_env / lib / python3.7 / site-packages / django / db / backends / sqlite3 / base.py в файле execute, строка 296 Исполняемый файл Python: / Users / gfioravante / Проекты / test_app / ta_env / bin / python3 Версия Python: 3.7.1 Python Path:
['/ Users / gfioravante / Projects / test_app / test_app', '/usr/local/Cellar/python/3.7.1/Frameworks/Python.framework/Versions/3.7/lib/python37.zip',' /usr/local/Cellar/python/3.7.1/Frameworks/Python.framework/Versions/3.7/lib/python3.7 ',' /usr/local/Cellar/python/3.7.1/Frameworks/Python.framework / Versions / 3.7 / lib / python3.7 / lib-dynload ',' / Users / gfioravante / Проекты / test_app / ta_env /lib / python3.7 / site-packages '] Время сервера: среда, 5 декабря 2018 г. 16:45:00 + 0000

и трассировка:

Среда:

Метод запроса: URL запроса POST: http://127.0.0.1:8000/admin/polls/question/1/change/

Версия Django: 2.1.4 Версия Python: 3.7.1 Установленные приложения: ['polls.apps.PollsConfig', 'django.contrib.admin ',' django.contrib.auth ',' django.contrib.contenttypes ',' django.contrib.sessions ',' django.contrib.messages ',' django.contrib.staticfiles '] Установленное промежуточное ПО: [' django,',' django.contrib.messages.middleware.MessageMiddleware ',' django.middleware.clickjacking.XFrameOptionsMiddleware ']

Отслеживание:

Файл "/ Users / gfioravante / Projects / test_app / ta/lib/python3.7/site-packages/django/db/backends/utils.py "яn _execute 85. вернуть self.cursor.execute (sql, params)

Файл "/Users/gfioravante/Projects/test_app/ta_env/lib/python3.7/site-packages/django/db/backends/sqlite3 / base.py "в execute 296. return Database.Cursor.execute (self, query, params)

Вышеуказанное исключение (нет такой таблицы: main.auth_user__old) было прямой причиной следующего исключения:

Файл "/Users/gfioravante/Projects/test_app/ta_env/lib/python3.7/site-packages/django/core/handlers/exception.py" во внутреннем 34. response = get_response (запрос)

Файл "/Users/gfioravante/Projects/test_app/ta_env/lib/python3.7/site-packages/django/core/handlers/base.py" в _get_response 126. response = self.process_exception_by_middleware (например,запрос)

Файл "/Users/gfioravante/Projects/test_app/ta_env/lib/python3.7/site-packages/django/core/handlers/base.py" в _get_response 124. response = wrapped_callback (запрос, * callback_args, ** callback_kwargs)

Файл "/ Пользователи / gfioravante / Проекты /test_app / ta_env / lib / python3.7 / site-packages / django / contrib / admin / options.py "в оболочке 604. вернуть self.admin_site.admin_view (view) (* args, ** kwargs)

Файл "/Users/gfioravante/Projects/test_app/ta_env/lib/python3.7/site-packages/django/utils/decorators.py" в _wrapped_view 142. response = view_func (request, * args, ** kwargs)

Файл"/Users/gfioravante/Projects/test_app/ta_env/lib/python3.7/site-packages/django/views/decorators/cache.py" в _wrapped_view_func 44. response = view_func (request, * args, ** kwargs)

Файл "/Users/gfioravante/Projects/test_app/ta_env/lib/python3.7/site-packages/django/contrib/admin/sites.py" во внутреннем 223. возвращаемое представление (request, * args,** kwargs)

Файл "/Users/gfioravante/Projects/test_app/ta_env/lib/python3.7/site-packages/django/contrib/admin/options.py" в change_view 1640. вернуть себя.changeform_view (запрос, object_id, form_url, extra_context)

Файл "/Users/gfioravante/Projects/test_app/ta_env/lib/python3.7/site-packages/django/utils/decorators.py" в _wrapper 45. return bound_method (* args, ** kwargs)

Файл "/Users/gfioravante/Projects/test_app/ta_env/lib/python3.7/site-packages/django/utils/decorators.py" в _wrapped_view142. response = view_func (request, * args, ** kwargs)

File "/ Users / gfioravante / Projects / test_app / ta_env / lib / python3.7 / site-packages / django / contrib / admin / options.py "в changeform_view 1525. вернуть self._changeform_view (запрос, идентификатор_объекта, form_url, extra_context)

File" / Users / gfioravante / Projects / test_app /ta_env / lib / python3.7 / site-packages / django / contrib / admin / options.py "в _changeform_view 1571. self.log_change (запрос, новый_объект, change_message)

Файл" / Users / gfioravante / Проекты/test_app/ta_env/lib/python3.7/site-packages/django/contrib/admin/options.py "в log_change 826. change_message = message,

File" / Users / gfioravante / Projects / test_app /ta_env / lib / python3.7 / site-packages / django / contrib / admin / models.py "в log_action 35. change_message = change_message,

File" / Users / gfioravante / Проекты / test_app / ta_env / lib/python3.7/site-packages/django/db/models/manager.py "в manager_method 82. return getattr (self.get_queryset (), name) (* args, ** kwargs)

File"/Users/gfioravante/Projects/test_app/ta_env/lib/python3.7/site-packages/django/db/models/query.py "в создании 413. obj.save (force_insert = True, используя = self.db)

Файл" /Users/gfioravante/Projects/test_app/ta_env/lib/python3.7/site-packages/django/db/models/base.py "в save 718. force_update = force_update, update_fields = update_fields)

Файл" /Users/gfioravante/Projects/test_app/ta_env/lib/python3.7/site-packages / django / db / models / base.py "в save_base 748. updated = self._save_table (raw, cls, force_insert, force_update, using, update_fields)

Файл" / Users / gfioravante / Projects / test_app/ta_env/lib/python3.7/site-packages/django/db/models/base.py "в _save_table 831. result = self._do_insert (cls._base_manager, с использованием полей, update_pk, raw)

Файл "/Users/gfioravante/Projects/test_app/ta_env/lib/python3.7/site-packages/django/db/models/base.py" в _do_insert 869. using = using, raw = raw)

Файл "/Users/gfioravante/Projects/test_app/ta_env/lib/python3.7/site-packages/django/db/models/manager.py" в manager_method 82. return getattr (self.get_queryset (), name) (* args, ** kwargs)

File "/Users/gfioravante/Projects/test_app/ta_env/lib/python3.7/site-packages/django/db/models/query.py "в _insert 1136. вернуть query.get_compiler (using = using) .execute_sql (return_id)

File" /Users/gfioravante/Projects/test_app/ta_env/lib/python3.7/site-packages/django / db / models / sql / compiler.py "в execute_sql 1289. cursor.execute (sql, params)

Файл"/Users/gfioravante/Projects/test_app/ta_env/lib/python3.7/site-packages/django/db/backends/utils.py" в execute 100. return super (). Execute (sql, params)

Файл "/Users/gfioravante/Projects/test_app/ta_env/lib/python3.7/site-packages/django/db/backends/utils.py" в execute 68. вернуть self._execute_with_wrappers (sql, params, many= False, executor = self._execute)

Файл "/Users/gfioravante/Projects/test_app/ta_env/lib/python3.7/site-packages/django/db/backends/utils.py" в _execute_with_wrappers77. вернуть исполнителя (sql, params, many, context)

File "/Users/gfioravante/Projects/test_app/ta_env/lib/python3.7/site-packages/django/db/backends/utils.py "in _execute 85. вернуть self.cursor.execute (sql, params)

File" /Users/gfioravante/Projects/test_app/ta_env/lib/python3.7/site-packages/django/db/utils.py "in выход 89. поднять dj_exc_value.with_traceback (traceback) из exc_value

File" / Users / gfioravante / Проекты / test_app / ta_env / lib /python3.7 / site-packages / django / db / backends / utils.py "в _execute 85. вернуть self.cursor.execute (sql, params)

File" / Users / gfioravante / Projects / test_app /ta_env / lib / python3.7 / site-packages / django / db / backends / sqlite3 / base.py "в execute 296. return Database.Cursor.execute (self, query, params)

Тип исключения:OperationalError в / admin / polls / question / 1 / change / Exception Value: нет такой таблицы: main.auth_user__old

Ответы [ 20 ]

0 голосов
/ 27 декабря 2018

Для тех, кто не хочет понижать версию какого-либо программного обеспечения, вы можете перейти к файлу settings.py и в диктовке DATABASES вы можете заменить .sqlit3 на .postgresql, а прямо под ним изменить *От 1005 * до db.sql.Это переключит вашу базу данных по умолчанию на использование postgreSQL.

Для этого вам необходимо pip install psycopg2.

Удалить ваш файл db.sqlite3 (если он у вас есть / вас не волнует потеря содержимого) и все остальноеэто не файл __init__.py в папке миграции вашего приложения.После того, как вы все это сделали, вы можете запустить python manage.py makemigrations и python manage.py migrate, и тогда это должно сработать :)

Надеюсь, я смог кому-то помочь!

0 голосов
/ 21 декабря 2018

Шаги:

  1. Удалите текущий Django из вашего ENV.Просто удалите папку "anaconda3 / envs / yourenv / lib / python3.7 / site-packages / Django всех версий .. * Примечание: только для пользователей Anaconda другие пользователи должны выяснить, как удалить пакет из вашей ENV.

  2. Перейти на Github.com/django/django.

  3. Загрузить репозиторий в виде zip-файла.

  4. Распакуйте zip.

  5. Переключитесь на ENV.

  6. Введите извлеченную папку.

  7. Запустите «python setup.py install» и установите Django.

  8. Удалите предыдущий файл db.sqlite3. Теперь примените миграции еще раз, чтобы создать новый файл db.sqlite3.

* Примечание: я не знаю, как исправить предыдущий файл базы данных и предотвратить потерю данных. Поэтому, пожалуйста, сообщите мне, если знаете.

Запустить сервер.

Поздравляю!Теперь он работает нормально.

Обновление до последней версии django в январе с официального релиза Django.

0 голосов
/ 20 декабря 2018

если вы не хотите менять свою версию Django, то база данных должна быть изменением.Используйте PostgreSQL мои рекомендации.Проблема будет решена после миграции и миграции.

0 голосов
/ 19 декабря 2018

Да, у меня та же ошибка в Django 2.1.4

OperationalError (Нет такой таблицы: main.auth_user__old)

Я удалил Django 2.1.4 установить Django 1.11.16 проблема решена

Установка Django 1.11.16 для меня бесполезна.Он покажет «ModuleNotFoundError» и «FileNotFoundError».Затем я открываю файл "db.sqlite3", копирую таблицу "auth_user" и "django_content_type" со структурой и данными, меняю имя таблицы на "auth_user__old" и "django_content_type__old".Это сработало!Я надеюсь, что это полезно для запутанных.

0 голосов
/ 31 мая 2019

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

  1. keep django версии 2.1.5 (проблема, решаемая в этой версии) pip install django==2.1.5
  2. Удалите базу данных SQLite
  3. Повторная миграция python manage.py makemigrations, а затем python manage.py migrate
  4. Запуск сервера python manage.py runserver

СДЕЛАНО!

0 голосов
/ 25 января 2019

Я только что попытался решить проблему, используя последнюю версию Django, но проблема все еще остается.Пока они не устранят эту проблему с помощью Django и Sqlite3, используйте более старые версии Django. Вы можете использовать версию 1.10.5 (с помощью команды pip install --upgrade django == 1.10.5)

0 голосов
/ 03 июня 2019

Для тех, кто не может разрешить эту ошибку с помощью приведенных выше ответов, если вы создали приложение с именем «main», эта ошибка может возникнуть из-за проблемы с тем же именем приложения.Поэтому попробуйте изменить название приложения «основное» на другое.

0 голосов
/ 19 февраля 2019

В командной строке я сделал всего 4 вещи, и это исправило мою.

  1. ctrl + c (остановка сервера)
  2. py manage.py makemigrations
  3. py manage.py migrate
  4. py manage.py runserver (стартовый сервер)
0 голосов
/ 29 июля 2019

Я решил проблему, изменив некоторые из моих моделей.У меня был один названный проект и один названные проекты.Таблицы базы данных запутались и бросили мне эту ошибку.

0 голосов
/ 05 декабря 2018

Я только что столкнулся с этим сам, похоже, он связан с https://code.djangoproject.com/ticket/29182. На данный момент вы можете просто понизить версию sqlite до версии до 2.6 (например, 2.5.1)

...