【发布时间】:2019-05-07 07:27:16
【问题描述】:
我正在关注官方 Django 文档中的 first app tutorial 并在尝试保存通过管理页面所做的一些更改时遇到此错误。我对此进行了一些研究,但是我能够找到的可能的解决方案(例如迁移数据库)根本行不通。如果您想查看我的代码的某些特定部分,请告诉我。
以下是错误:
OperationalError at /admin/polls/question/1/change/ 没有这样的表: main.auth_user__old 请求方法: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 在执行中,第 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']
追溯:
文件 “/Users/gfioravante/Projects/test_app/ta_env/lib/python3.7/site-packages/django/db/backends/utils.py” 在_执行 85. return self.cursor.execute(sql, params)
文件 “/Users/gfioravante/Projects/test_app/ta_env/lib/python3.7/site-packages/django/db/backends/sqlite3/base.py” 在执行 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(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)
文件 “/Users/gfioravante/Projects/test_app/ta_env/lib/python3.7/site-packages/django/core/handlers/base.py” 在 _get_response 124. response = Wrapped_callback(request, *callback_args, **callback_kwargs)
文件 “/Users/gfioravante/Projects/test_app/ta_env/lib/python3.7/site-packages/django/contrib/admin/options.py” 在包装中 604. return 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. 返回视图(请求,*args,**kwargs)
文件 “/Users/gfioravante/Projects/test_app/ta_env/lib/python3.7/site-packages/django/contrib/admin/options.py” 在 change_view 1640. return self.changeform_view(request, 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_view 142. response = view_func(request, *args, **kwargs)
文件 “/Users/gfioravante/Projects/test_app/ta_env/lib/python3.7/site-packages/django/contrib/admin/options.py” 在 changeform_view 1525. return self._changeform_view(request, object_id, form_url, extra_context)
文件 “/Users/gfioravante/Projects/test_app/ta_env/lib/python3.7/site-packages/django/contrib/admin/options.py” 在_changeform_view 1571. self.log_change(request, new_object, change_message)
文件 “/Users/gfioravante/Projects/test_app/ta_env/lib/python3.7/site-packages/django/contrib/admin/options.py” 在 log_change 826.change_message=消息,
文件 “/Users/gfioravante/Projects/test_app/ta_env/lib/python3.7/site-packages/django/contrib/admin/models.py” 在 log_action 35. change_message=change_message,
文件 “/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)
文件 “/Users/gfioravante/Projects/test_app/ta_env/lib/python3.7/site-packages/django/db/models/query.py” 在创建 413. obj.save(force_insert=True, using=self.db)
文件 “/Users/gfioravante/Projects/test_app/ta_env/lib/python3.7/site-packages/django/db/models/base.py” 在保存 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. 更新 = 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. 结果 = self._do_insert(cls._base_manager, using, fields, update_pk, raw)
文件 “/Users/gfioravante/Projects/test_app/ta_env/lib/python3.7/site-packages/django/db/models/base.py” 在 _do_insert 869. 使用=使用,原始=原始)
文件 “/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)
文件 “/Users/gfioravante/Projects/test_app/ta_env/lib/python3.7/site-packages/django/db/models/query.py” 在_插入 1136. return query.get_compiler(using=using).execute_sql(return_id)
文件 “/Users/gfioravante/Projects/test_app/ta_env/lib/python3.7/site-packages/django/db/models/sql/compiler.py” 在执行_sql 1289. cursor.execute(sql,参数)
文件 “/Users/gfioravante/Projects/test_app/ta_env/lib/python3.7/site-packages/django/db/backends/utils.py” 在执行 100. return super().execute(sql, params)
文件 “/Users/gfioravante/Projects/test_app/ta_env/lib/python3.7/site-packages/django/db/backends/utils.py” 在执行 68. return 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_wrappers 77. return executor(sql, params, many, context)
文件 “/Users/gfioravante/Projects/test_app/ta_env/lib/python3.7/site-packages/django/db/backends/utils.py” 在_执行 85. return self.cursor.execute(sql, params)
文件 “/Users/gfioravante/Projects/test_app/ta_env/lib/python3.7/site-packages/django/db/utils.py” 在退出 89. 从 exc_value 提高 dj_exc_value.with_traceback(traceback)
文件 “/Users/gfioravante/Projects/test_app/ta_env/lib/python3.7/site-packages/django/db/backends/utils.py” 在_执行 85. return self.cursor.execute(sql, params)
文件 “/Users/gfioravante/Projects/test_app/ta_env/lib/python3.7/site-packages/django/db/backends/sqlite3/base.py” 在执行 296. return Database.Cursor.execute(self, query, params)
异常类型:/admin/polls/question/1/change/ 处的 OperationalError 异常值:没有这样的表:main.auth_user__old
【问题讨论】:
-
如果您没有数据,只需将其删除并再次迁移。如果不可能,请执行
python manage.py showmigrations以查看哪些迁移未完成 -
此问题仅在 Django 2.1.5 版中得到解决
标签: python django python-3.x django-models