有人可以详细说明如何修复ERROR: no such table: main.auth_user__old
当我尝试将数据添加到注册的模型中时,它会出现在我的Django应用程序中。
答案 0 :(得分:2)
如果您使用的是django == 2.1,则可能会收到此错误。 通过安装django == 2.1.5重新启动您的Django项目。 它将起作用。
答案 1 :(得分:1)
这是最新的SQLite和Django之间的兼容性问题。看到这里:Django - No such table: main.auth_user__old
答案 2 :(得分:1)
我已经使用以下方法解决了这个问题:
1)删除db.sqlit3
2)应用程序的目录删除pycache中的所有内容
3)manage.py makemigrations,manage.py迁移,manage.py createsuperuser,然后再manage.py运行服务器。
答案 3 :(得分:0)
您可能尚未运行迁移。在运行迁移之前,不会创建任何表。因此,错误。 参见https://docs.djangoproject.com/en/2.1/topics/migrations/#workflow
注册模型后,转到git bash或powershell。确保您在项目目录中。然后运行以下命令:
python manage.py makemigrations
然后
python manage.py migrate
这些命令将为您创建表,然后您可以向其中添加数据。
答案 4 :(得分:0)
当我使用python shell添加到数据库而不是UI时,错误不再显示
$ python manage.py shell
from AppName.models import Product
Product.objects.create(title='Newer', price=239.99, summary='awesome')
答案 5 :(得分:0)
没有必要降级到任何版本的Django或SQL Lite,但是如果您按照我在GitHub链接https://github.com/komerela/django_troubleshooting中概述的步骤进行操作,则应该很好...点击pdf标记为“逐步解决SQLITE3问题的解决方案.pdf”的文档
不客气!
答案 6 :(得分:0)
我知道很久以前就遇到此问题,我不想让任何人再次陷入困境:
第一步:解决方案是检查Django版本是否为2.1,然后将其更新为2.2 或更高版本。
Step2:更新到Django == 2.2或更高版本后,从migrations文件夹中删除所有旧迁移,然后删除db.sqlite3,然后再次运行makemigrations和migrations。它将解决。
祝你好运!
答案 7 :(得分:0)
这发生在我作为新手的身上,当时我正在学习 Mosh 关于最终项目 3:Django 的介绍课程。这是修复程序,通常使用 Pycharm 或等效的(无需更改任何代码):
然后在终端窗口中像这样升级 Django pip install --upgrade django==2.1.5
完成后,您重新构建。
python manage.py makemigrations
并按 Enter。应该说没有检测到任何变化。python manage.py migrate
,它会重建db.sqlite3python manage.py runserver
让它运行。python manage.py createsuperuser
并按照提示操作。答案 8 :(得分:0)
首先你不必改变你的代码,你的django版本的问题 我很确定你正在学习 mosh 的教程或类似的东西, 要解决此问题,请按照以下步骤操作: