【发布时间】:2013-07-09 14:08:21
【问题描述】:
所以我正在使用基于 Django 的 RapidSMS,我正在尝试将他们的教程结合起来,特别是 poll app in django 和 voting app in 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
投票部分在管理员上显示良好,我可以输入问题和日期,但是当我尝试添加选项或触摸选项时,我收到错误“table vote_choice 没有名为 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;
所以它/说/这里有那一栏。然后我同步数据库,迁移以获得良好的度量和运行服务器,或者外壳和任何一种方式输入投票问题/日期都很好,但是一旦我尝试添加选项或查看创建的投票,我就会收到上述错误。 投票肯定包含在 INSTALLED_APPS 中。所以作为一个 Django 新手,我迷路了。如果有人有更多的建议可以尝试,他们将不胜感激。
谢谢, 丽兹
【问题讨论】:
标签: django python-2.7 django-models sqlite