0

だから私は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 の初心者なので、迷っています。誰かが試してみるべき提案があれば、彼らは非常に高く評価されます.

ありがとう、リジー

4

1 に答える 1