だから私はDjango上に構築されたRapidSMSで作業しており、彼らのチュートリアル、特にdjangoの投票アプリとrapidsmsの投票アプリを組み合わせようとしています。私は投票から始め、djangoチュートリアルのコードを使用して拡張しようとしていました困ったとき。(私はWindows7 64ビット、Django 1.5、およびSQLite3でpython27を使用しています)これがvoting.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
投票部分は管理者に問題なく表示され、質問と日付を入力できますが、選択肢を追加しようとしたり、選択肢にまったく触れたりしようとすると、「テーブルvoting_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;
つまり、その列がここにあると/言います/。次に、syncdb、適切な測定のために移行してサーバーを実行する、またはシェルを使用して、投票の質問/日付を入力しても問題ありませんが、選択肢を追加しようとしたり、作成された投票を見ようとすると、上記のエラーが発生します。投票は間違いなく INSTALLED_APPS に含まれています。Django の初心者なので、迷っています。誰かが試してみるべき提案があれば、彼らは非常に高く評価されます.
ありがとう、リジー