为啥我在 Django 的 Python shell 中出现编程错误?

Posted

技术标签:

【中文标题】为啥我在 Django 的 Python shell 中出现编程错误?【英文标题】:Why am I getting a Programming error in Django's Python shell?为什么我在 Django 的 Python shell 中出现编程错误? 【发布时间】:2014-02-06 07:35:42 【问题描述】:

我正在关注 Django 在 Arch Linux 上使用 PostgreSQL 的 1.6 版教程。到目前为止,我在第 1 部分:

"给Poll 一对Choices。create 调用构造了一个新的 Choice 对象,执行 INSERT 语句,将选项添加到集合中 可用选项并返回新的Choice 对象。 Django 创建 一组用于保持ForeignKey 关系的“另一面” (例如投票的选择),可以通过 API 访问。

 >>> p = Poll.objects.get(pk=1)
 # Display any choices from the related object set -- none so far.
 >>> p.choice_set.all()

 []

当我运行 p.choice_set.all() 时,我的 shell 中出现错误,而不是空列表:

ProgrammingError: column "poll_id" of relation "polls_choice" does not exist

这是我第一次在教程中看到“choice_set”,我不确定它的作用。我尝试了整个练习几次,直到现在一切正常——我无法弄清楚我做错了什么。

【问题讨论】:

你做了syncdb之后有没有换过模型? 尝试使用drop命令手动删除数据库并再次运行syncdb。 @crazydiv 谢谢,成功了! 【参考方案1】:

删除 Poll 和 Choice 表并运行 python manage.py syncdb 以根据您当前的 models.py 重新创建它们

【讨论】:

以上是关于为啥我在 Django 的 Python shell 中出现编程错误?的主要内容,如果未能解决你的问题,请参考以下文章

为啥这个 Django 日志记录不起作用?

为啥 Django 翻译不使用 javascript 中的基础语言?

为啥我在 Django 中有这个错误?

为啥我在运行时出现整数精度错误:heroku run python manage.py migrate

为啥我在 django 教程中收到此模板错误?

为啥我在 Django 中收到“MySQL 服务器已消失”异常?