【问题标题】:Django tutorial01 OperationalError: no such column: polls_choice.question_text_idDjango tutorial01 OperationalError: no such column: polls_choice.question_text_id
【发布时间】:2013-12-08 09:15:24
【问题描述】:

我是 Python 和 Django 的新手,我一步步跟着"django / docs / intro / tutorial01.txt"。起初,一切都很顺利,直到我去了 765 行。 我尝试调试,但它不起作用

>>> q.choice_set.all()

Traceback (most recent call last):
  File "<console>", line 1, in <module>
  File "D:\Program Files\Python27\lib\site-packages\django\db\models\query.py",
line 71, in __repr__
    data = list(self[:REPR_OUTPUT_SIZE + 1])
  File "D:\Program Files\Python27\lib\site-packages\django\db\models\query.py",
line 96, in __iter__
    self._fetch_all()
  File "D:\Program Files\Python27\lib\site-packages\django\db\models\query.py",
line 854, in _fetch_all
    self._result_cache = list(self.iterator())
  File "D:\Program Files\Python27\lib\site-packages\django\db\models\query.py",
line 220, in iterator
    for row in compiler.results_iter():
  File "D:\Program Files\Python27\lib\site-packages\django\db\models\sql\compile
r.py", line 710, in results_iter
    for rows in self.execute_sql(MULTI):
  File "D:\Program Files\Python27\lib\site-packages\django\db\models\sql\compile
r.py", line 781, in execute_sql
    cursor.execute(sql, params)
  File "D:\Program Files\Python27\lib\site-packages\django\db\backends\util.py",
 line 69, in execute
    return super(CursorDebugWrapper, self).execute(sql, params)
  File "D:\Program Files\Python27\lib\site-packages\django\db\backends\util.py",
 line 53, in execute
    return self.cursor.execute(sql, params)
  File "D:\Program Files\Python27\lib\site-packages\django\db\utils.py", line 99
, in __exit__
    six.reraise(dj_exc_type, dj_exc_value, traceback)
  File "D:\Program Files\Python27\lib\site-packages\django\db\backends\util.py",
 line 53, in execute
    return self.cursor.execute(sql, params)
  File "D:\Program Files\Python27\lib\site-packages\django\db\backends\sqlite3\b
ase.py", line 450, in execute
    return Database.Cursor.execute(self, query, params)
OperationalError: no such column: polls_choice.question_text_id
>>> q.choice_text_set.all()
Traceback (most recent call last):
  File "<console>", line 1, in <module>
AttributeError: 'Question' object has no attribute 'choice_text_set'
>>> q.choice_set.all()
Traceback (most recent call last):
  File "<console>", line 1, in <module>
  File "D:\Program Files\Python27\lib\site-packages\django\db\models\query.py",
line 71, in __repr__
    data = list(self[:REPR_OUTPUT_SIZE + 1])
  File "D:\Program Files\Python27\lib\site-packages\django\db\models\query.py",
line 96, in __iter__
    self._fetch_all()
  File "D:\Program Files\Python27\lib\site-packages\django\db\models\query.py",
line 854, in _fetch_all
    self._result_cache = list(self.iterator())
  File "D:\Program Files\Python27\lib\site-packages\django\db\models\query.py",
line 220, in iterator
    for row in compiler.results_iter():
  File "D:\Program Files\Python27\lib\site-packages\django\db\models\sql\compile
r.py", line 710, in results_iter
    for rows in self.execute_sql(MULTI):
  File "D:\Program Files\Python27\lib\site-packages\django\db\models\sql\compile
r.py", line 781, in execute_sql
    cursor.execute(sql, params)
  File "D:\Program Files\Python27\lib\site-packages\django\db\backends\util.py",
 line 69, in execute
    return super(CursorDebugWrapper, self).execute(sql, params)
  File "D:\Program Files\Python27\lib\site-packages\django\db\backends\util.py",
 line 53, in execute
    return self.cursor.execute(sql, params)
  File "D:\Program Files\Python27\lib\site-packages\django\db\utils.py", line 99
, in __exit__
    six.reraise(dj_exc_type, dj_exc_value, traceback)
  File "D:\Program Files\Python27\lib\site-packages\django\db\backends\util.py",
 line 53, in execute
    return self.cursor.execute(sql, params)
  File "D:\Program Files\Python27\lib\site-packages\django\db\backends\sqlite3\b
ase.py", line 450, in execute
    return Database.Cursor.execute(self, query, params)
OperationalError: no such column: polls_choice.question_text_id

任何建议,在此先感谢。

【问题讨论】:

  • 你跑python manage.py syncdb了吗?
  • 首先,我运行了 python manage.py syncdb 并再次运行它。但是,仍然出现错误。

标签: python django


【解决方案1】:

有两种可能会出现此错误 1)您在执行 syncdb 后向模型添加了额外的字段。 2) 你在 django 的 model.py 文件中添加了新的类。

解决办法是:

先用命令安装南

    for windows: **easy_install south**     //for that you need to go to the script folder of python folder in c drive.

    for linux: **sudo easy_install south**  

然后按照此处包含的步骤migration tutorials

step1- python manage.py schemamigration your_app_name --initial

步骤 2 python manage.py migrate your_app_name

如果您对模型进行了任何更改,那么

 1) python manage.py schemamigration your_app_name --auto
 2) python manage.py migrate your_app_name

希望这会对你有所帮助。

【讨论】:

    【解决方案2】:

    确保您按照所用 Django 版本的正确教程进行操作。您已链接到 master 分支中的文档,该分支最终将成为 Django 1.7。如果您使用的是 Django 1.6,请使用 1.6 tutorial

    我建议您使用正确的文档重新开始本教程。第二次通过会更快。如果您再次卡住,请更新您的问题。祝你好运!

    【讨论】:

    • 非常感谢您的建议。原来我在处理过程中同步的表有问题。我真的应该重新开始这个过程。
    猜你喜欢
    • 2016-01-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-05-28
    • 1970-01-01
    • 2015-07-21
    • 2016-07-30
    相关资源
    最近更新 更多