如何修复Django错误“异常类型:OperationalError 异常值:没有此表?”

9 投票
3 回答
16081 浏览
提问于 2025-04-15 22:46

我终于安装好了一个Django项目所需的所有东西(我觉得是这样!),现在我想在我的Mac(OSX 10.4)上运行一个本地安装。

但是我遇到了以下错误:

错误信息:
操作错误在 /
没有这个表:django_content_type
请求方法:GET
请求网址:http://127.0.0.1:8000/
异常类型:操作错误
异常内容:
没有这个表:django_content_type
异常位置:/Users/Diesel/Desktop/DjangoWork/pinax-ev/lib/python2.5/site-packages/django/db/backends/sqlite3/base.py
在执行时,第170行
Python可执行文件:/Users/Diesel/Desktop/DjangoWork/pinax-ev/bin/python
Python版本:2.5.1

3 个回答

0

这个错误出现的原因是你的数据库里没有相关的表信息,或者和你现有的数据库有冲突。比如说,你可能更改了数据库的列名或者数据库的名字。

下面的步骤可以帮助你解决这个错误。

  1. 在文件"setting.py"中查找INSTALLED_APPS = [],确保你的应用名称在里面。例如:INSTALLED_APPS = ['app'/{你的应用名称用引号括起来}]

  2. 运行以下命令:

python manage.py makemigrations app (这里的'app'是你的应用名称,替换成你自己的名称)

python manage.py migrate

python manage.py runserver

13

我在使用Django 1.10版本时,需要执行以下操作:

python manage.py migrate --run-syncdb
11
  • 你有没有运行过 ./manage.py syncdb 来创建所有的数据库表?
  • 在你的 settings.py 文件中的 INSTALLED_APPS 里,有没有包含 django.contrib.contenttypes 这个选项?

还有一个不太常见的第三种情况:

  • 你的项目或应用是否使用了 Django 的 "South" 应用?如果是这样,你还需要运行 ./manage.py migrate 来确保所有的表都被创建。

如果忘记了以上任何一项,ContentType 的表就不会被生成。

撰写回答