Django错误:OperationalError:没有这样的表:polls_poll

时间:2014-02-23 23:49:07

标签: python django shell sqlite

使用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),而时区支持处于活动状态。

任何帮助将不胜感激。

4 个答案:

答案 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。只需进行迁移,它就可以正常工作。

当然,您可能希望在删除数据库之前存储数据。