table polls_choice has no column named poll_id
我在Django教程的第2部分。这是我在Django管理中添加"选项"时遇到的错误
1 | DatabaseError: table polls_choice has no column named poll_id |
这就是我运行命令时得到的结果
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | python manage.py sql polls BEGIN; CREATE TABLE"polls_poll" ( "id" integer NOT NULL PRIMARY KEY, "question" varchar(200) NOT NULL, "pub_date" datetime NOT NULL ) ; CREATE TABLE"polls_choice" ( "id" integer NOT NULL PRIMARY KEY, "poll_id" integer NOT NULL REFERENCES"polls_poll" ("id"), "choice_text" varchar(200) NOT NULL, "votes" integer NOT NULL ) ; COMMIT; |
号
这是我的设置.py
http://pastebin.com/g4kvigqx
非常感谢您的帮助!谢谢您!
听起来像是在运行syncdb之后添加了poll外键。
对于django 1.7+,您应该使用迁移而不是syncdb。对于django<1.7,强烈建议南方进行数据库迁移。
但是,由于您正在学习本教程,并且没有任何重要的数据,所以最简单的方法是删除表并重新创建它。在数据库外壳程序中运行以下命令:
1 | drop table polls_choice; |
然后再次运行syncdb以重新创建表。
如果您不需要数据库中的任何数据,那么删除sqlite数据库文件,然后再次运行syncdb会更快。
在创建