django.db.utils.DatabaseError:没有这样的表

时间:2013-12-14 11:20:39

标签: django django-models scrapy

我在Django项目中使用Scrapy。

在我的pipelines.py文件中,我可以毫无问题地从Django导入模型:

from competitions.models import Competition

我可以成功显示竞赛模型的属性列表:

for field_name in Competition._meta.get_all_field_names():
    print field_name #>>> OK

然而,Competition.objects的所有方法,例如Competition.objects.get()提升django.db.utils.DatabaseError: no such table: competitions_competition"

例如,当我尝试获取实例时,我收到此错误:

uefa_champ_leagues = Competition.objects.get(code='EUR_C1_2013')

我已应用Saving Django model from Scrapy projectAccess django models inside of Scrapy的建议,因为导入有效,我怀疑问题来自那里。

有什么想法吗?

1 个答案:

答案 0 :(得分:1)

尝试将像python manage.py shell这样的类似环境组合在一起是一个常见的错误。它是脏的和混乱的,并导致像OP中的问题:似乎Django找不到数据库文件的正确位置,或类似的东西。 (而且你并不孤单,我一开始也犯了这个错误。)

编写与Django站点一起使用的脚本的推荐解决方案是create a custom django-admin command,以便您可以使用python manage.py yourcommand运行它。它干净,可测试,逻辑属于你的Django项目。