使用Python 2.7浏览Django教程1似乎无法解决此错误: OperationalError:没有这样的表:polls_poll
当我将Poll.objects.all()
输入shell时会发生这种情况。
我已经尝试过的基于网络研究的事情:
1)确保'polls'
列在settings.py
中的INSTALLED_APPS
下
注意:我看到很多建议将'mysite.polls'
而不是'polls'
插入INSTALLED_APPS
,但这会产生以下错误: ImportError:无法从'mysite'导入名称'polls'
2)运行python manage.py syncdb
。这会成功创建我的db.sqlite3文件,并且在我的mysite文件夹中看似没有问题。
3)最后,当我运行python manage.py shell
时,shell运行顺利,但是当它启动时我确实得到了一些奇怪的运行时警告,并想知道 polls_poll 错误是否已连接:
\ django \ db \ backends \ sqlite3 \ base.py:63:RuntimeWarning:SQLite收到了一个天真的日期时间(2014-02-03 17:32:24.392000),而时区支持处于活动状态。
任何帮助将不胜感激。
答案 0 :(得分:11)
我今天遇到同样的问题并修复它我认为你错过了教程1中的一些命令,只需遵循:
./python manage.py makemigrations polls
python manage.py sql polls
./python manage.py syncdb
然后修复它并获得表格民意调查,您可以看到创建的表格,您应该阅读" manage.py makemigrations"命令
答案 1 :(得分:6)
我在你的models.py进行更改之后想出了你所做的错误,你应该运行migrate ..i.e
python manage.py migrate
然后只有您的更改(polls_question)可见
答案 2 :(得分:1)
对于那些在当前django 3.0版本(https://docs.djangoproject.com/en/3.0/intro/tutorial02/)中遇到此错误的用户,可以通过确保依次运行以下命令来纠正此错误。
python manage.py makemigrations polls
python manage.py sqlmigrate polls 0001
python manage.py migrate
答案 3 :(得分:1)
我刚刚以一种非常简单有效的方式解决了这个问题。
此错误是由于Django中的 pycache 和db.sqlite3错误导致的 要解决此错误,我们可以删除这些文件并重新制作。
手动删除 pycache 和db.sqlite3。
然后在终端中运行它:
python manage.py makemigrations polls
此后,将再次创建数据库和__pycache。只需进行迁移,它就可以正常工作。
当然,您可能希望在删除数据库之前存储数据。