所以我正在使用基于 Django 的 RapidSMS,我正在尝试将他们的教程结合起来,特别是django中的投票应用程序和 rapidsms中的投票应用程序我从投票开始,并试图使用 django 教程中的代码来扩展它当我遇到麻烦时。(我在 Windows7 64 位、Django 1.5 和 SQLite3 上使用 python27)这是我在 vote.models 中的内容
from django.db import models
from django.utils import timezone
# Create your models here.
class Poll(models.Model):
question = models.CharField(max_length=200)
pub_date = models.DateTimeField('date published')
def __unicode__(self):
return self.question
def was_published_recently(self):
return self.pub_date >= timezone.now() - datetime.timedelta(days=1)
class Choice(models.Model):
poll = models.ForeignKey(Poll)
name = models.CharField(max_length=40, unique=True)
votes = models.IntegerField(default=0)
def __unicode__(self):
return self.name
投票部分在管理员上显示得很好,我可以提出问题和日期,但是当我尝试添加选项或触摸选项时,我收到错误“表投票选择没有名为 poll_id 的列”
在为 Choice 制作表格后,我添加了 poll = models.ForeignKey(Poll),经过一些研究后我认为这可能是问题(也许仍然存在)我得到的印象是表格没有被覆盖。所以这就是我所做的:
>manage.py sqlclear voting
BEGIN;
DROP TABLE "voting_choice";
DROP TABLE "voting_poll";
COMMIT;
>manage.py sql voting
BEGIN;
CREATE TABLE "voting_poll" (
"id" integer NOT NULL PRIMARY KEY,
"question" varchar(200) NOT NULL,
"pub_date" datetime NOT NULL
)
;
CREATE TABLE "voting_choice" (
"id" integer NOT NULL PRIMARY KEY,
"poll_id" integer NOT NULL REFERENCES "voting_poll" ("id"),
"name" varchar(40) NOT NULL UNIQUE,
"votes" integer NOT NULL
)
;
COMMIT;
所以它/说/它在这里有那一列。然后我同步db,迁移以获得良好的度量并运行服务器,或者shell和任何一种输入投票问题/日期的方式都很好,但是一旦我尝试添加一个选项或查看一个创建的投票,我就会收到上述错误。投票肯定包含在 INSTALLED_APPS 中。所以作为一个 Django 新手,我迷路了。如果有人有更多的建议可以尝试,他们将不胜感激。
谢谢,莉齐