我正在关注官方 Django 文档中的 第一个应用程序教程,并在尝试保存通过管理页面所做的一些更改时遇到此错误。我对此进行了一些研究,但我能够找到的可能解决方案(例如迁移数据库)根本行不通。如果您想查看我的代码的某些特定部分,请告诉我。
以下是错误:
OperationalError at /admin/polls/question/1/change/ no such table: main.auth_user__old 请求方法:POST 请求 URL: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 在执行中,第 296 行 Python 可执行文件:/Users/gfioravante/Projects/test_app/ta_env/bin/python3 Python 版本:3.7.1 Python 路径:
[’/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/Projects/test_app/ta_env/lib/python3.7/site-packages’] 服务器时间:2018 年 12 月 5 日星期三 16:45:00 +0000
和回溯:
环境:
请求方式:POST 请求URL: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.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 ‘]
追溯:
_execute 85 中的文件“/Users/gfioravante/Projects/test_app/ta_env/lib/python3.7/site-packages/django/db/backends/utils.py”。返回 self.cursor.execute(sql, params)
执行 296 中的文件“/Users/gfioravante/Projects/test_app/ta_env/lib/python3.7/site-packages/django/db/backends/sqlite3/base.py”。返回 Database.Cursor.execute(self, query,参数)
上述异常(没有这样的表:main.auth_user__old)是以下异常的直接原因:
内部文件“/Users/gfioravante/Projects/test_app/ta_env/lib/python3.7/site-packages/django/core/handlers/exception.py”。response = get_response(request)
文件“/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(e, request)
_get_response 124 中的文件“/Users/gfioravante/Projects/test_app/ta_env/lib/python3.7/site-packages/django/core/handlers/base.py”。response = wrapped_callback(request, *callback_args, **callback_kwargs)
包装器 604 中的文件“/Users/gfioravante/Projects/test_app/ta_env/lib/python3.7/site-packages/django/contrib/admin/options.py”。返回 self.admin_site.admin_view(view)(*args, **kwargs)
_wrapped_view 142 中的文件“/Users/gfioravante/Projects/test_app/ta_env/lib/python3.7/site-packages/django/utils/decorators.py”。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” inner 223.return view(request, *args, **kwargs)
change_view 1640 中的文件“/Users/gfioravante/Projects/test_app/ta_env/lib/python3.7/site-packages/django/contrib/admin/options.py”。return self.changeform_view(request, object_id, form_url, extra_context)
_wrapper 中的文件“/Users/gfioravante/Projects/test_app/ta_env/lib/python3.7/site-packages/django/utils/decorators.py”。返回 bound_method(*args, **kwargs)
_wrapped_view 142 中的文件“/Users/gfioravante/Projects/test_app/ta_env/lib/python3.7/site-packages/django/utils/decorators.py”。response = view_func(request, *args, **kwargs)
changeform_view 1525 中的文件“/Users/gfioravante/Projects/test_app/ta_env/lib/python3.7/site-packages/django/contrib/admin/options.py”。return self._changeform_view(request, object_id, form_url, extra_context)
_changeform_view 1571 中的文件“/Users/gfioravante/Projects/test_app/ta_env/lib/python3.7/site-packages/django/contrib/admin/options.py”。self.log_change(请求,new_object,change_message)
log_change 826 中的文件“/Users/gfioravante/Projects/test_app/ta_env/lib/python3.7/site-packages/django/contrib/admin/options.py”。change_message=message,
log_action 35 中的文件“/Users/gfioravante/Projects/test_app/ta_env/lib/python3.7/site-packages/django/contrib/admin/models.py”。change_message=change_message,
文件“/Users/gfioravante/Projects/test_app/ta_env/lib/python3.7/site-packages/django/db/models/manager.py” in manager_method 82. return getattr(self.get_queryset(), name)(* args, **kwargs)
创建文件“/Users/gfioravante/Projects/test_app/ta_env/lib/python3.7/site-packages/django/db/models/query.py”。obj.save(force_insert=True, using=self.db )
保存 718 中的文件“/Users/gfioravante/Projects/test_app/ta_env/lib/python3.7/site-packages/django/db/models/base.py”。force_update=force_update, update_fields=update_fields)
save_base 748 中的文件“/Users/gfioravante/Projects/test_app/ta_env/lib/python3.7/site-packages/django/db/models/base.py”。updated = self._save_table(raw, cls, force_insert, force_update , 使用, update_fields)
_save_table 831 中的文件“/Users/gfioravante/Projects/test_app/ta_env/lib/python3.7/site-packages/django/db/models/base.py”。result = self._do_insert(cls._base_manager, using, fields , update_pk, 原始)
_do_insert 869 中的文件“/Users/gfioravante/Projects/test_app/ta_env/lib/python3.7/site-packages/django/db/models/base.py”。using=using, raw=raw)
文件“/Users/gfioravante/Projects/test_app/ta_env/lib/python3.7/site-packages/django/db/models/manager.py” in manager_method 82. return getattr(self.get_queryset(), name)(* args, **kwargs)
_insert 1136 中的文件“/Users/gfioravante/Projects/test_app/ta_env/lib/python3.7/site-packages/django/db/models/query.py”。return query.get_compiler(using=using).execute_sql(return_id )
execute_sql 1289 中的文件“/Users/gfioravante/Projects/test_app/ta_env/lib/python3.7/site-packages/django/db/models/sql/compiler.py”。cursor.execute(sql, params)
执行 100 中的文件“/Users/gfioravante/Projects/test_app/ta_env/lib/python3.7/site-packages/django/db/backends/utils.py”。返回 super().execute(sql, params)
执行 68 中的文件“/Users/gfioravante/Projects/test_app/ta_env/lib/python3.7/site-packages/django/db/backends/utils.py”。返回 self._execute_with_wrappers(sql, params, many=False,执行者=自我._执行)
_execute_with_wrappers 中的文件“/Users/gfioravante/Projects/test_app/ta_env/lib/python3.7/site-packages/django/db/backends/utils.py”。返回执行器(sql、params、许多、上下文)
_execute 85 中的文件“/Users/gfioravante/Projects/test_app/ta_env/lib/python3.7/site-packages/django/db/backends/utils.py”。返回 self.cursor.execute(sql, params)
出口 89 中的文件“/Users/gfioravante/Projects/test_app/ta_env/lib/python3.7/site-packages/django/db/utils.py”。从 exc_value 提高 dj_exc_value.with_traceback(traceback)
_execute 85 中的文件“/Users/gfioravante/Projects/test_app/ta_env/lib/python3.7/site-packages/django/db/backends/utils.py”。返回 self.cursor.execute(sql, params)
执行 296 中的文件“/Users/gfioravante/Projects/test_app/ta_env/lib/python3.7/site-packages/django/db/backends/sqlite3/base.py”。返回 Database.Cursor.execute(self, query,参数)
异常类型:OperationalError at /admin/polls/question/1/change/ 异常值:没有这样的表:main.auth_user__old
原文由 user10750522 发布,翻译遵循 CC BY-SA 4.0 许可协议
我自己刚刚遇到这个,它看起来与 https://code.djangoproject.com/ticket/29182 有关。现在,您可以将 sqlite 版本降级到 2.6 之前的版本(例如 2.5.1)