0

私はdjangoを初めて使用します.Practical Django Projectsという本を読んで学習しています。本に記載されているように、私はウェブログを作成しています。エントリ モデルを作成するためのすべての手順に従いました。管理インターフェイスからエントリを追加しようとすると、エラーが発生します

  DatabaseError at /adminlebron/entry/add/
  table lebron_entry has no column named slug

少し検索した後、モデルを完全に作成する前にsyncdbを実行したことがわかり、djangoのドキュメントから、Syncdbは既存のテーブルを変更しないことがわかりました。その後、South ( http://south.aeracode.org/ ) を見つけて使用してみましたが、それでも同じエラーが発生します。

これが私のエントリーモデルです

class Entry(models.Model):
    STATUS_CHOICES = (
    (1,'Live'),
    (2,'Draft'),
    )
    title = models.CharField(max_length=250)
        excerpt = models.TextField(blank=True)
    body = models.TextField()
    pub_date = models.DateTimeField(default=datetime.datetime.now)
    slug = models.SlugField(help_text="Slug")
    author = models.ForeignKey(User)
    enable_comments = models.BooleanField(default=True)
    featured = models.BooleanField(default=False)
    status = models.IntegerField(choices=STATUS_CHOICES,default=1)
    categories = models.ManyToManyField(Category)
    tags = TagField()
    excerpt_html = models.TextField(editable=False,blank=True)
    body_html = models.TextField(editable=False,blank=True)

    def save(self):
        self.body_html = markdown(self.body)
        if self.excerpt:
            self.excerpt_html = markdown(self.excerpt)
        super(Entry,self).save()

    class Meta:
        verbose_name_plural = "Entries"
            ordering = ['-pub_date']

    class Admin:
        pass

    def __unicode__(self):
        return self.title

    def get_absolute_url(self):
        return "/weblog/%s/%s/" %     (self.pub_date.strftime("%Y/%b/%d").lower(),self.slug)

これは sqlall の出力です

BEGIN;
CREATE TABLE "lebron_category" (
    "id" integer NOT NULL PRIMARY KEY,
    "title" varchar(250) NOT NULL,
    "slug" varchar(50) NOT NULL UNIQUE,
    "description" text NOT NULL
)
;
CREATE TABLE "lebron_entry_categories" (
    "id" integer NOT NULL PRIMARY KEY,
    "entry_id" integer NOT NULL,
    "category_id" integer NOT NULL REFERENCES "lebron_category" ("id")
    UNIQUE ("entry_id", "category_id")
)
;
CREATE TABLE "lebron_entry" (
    "id" integer NOT NULL PRIMARY KEY,
    "title" varchar(250) NOT NULL,
    "excerpt" text NOT NULL,
    "body" text NOT NULL,
    "pub_date" datetime NOT NULL,
    "slug" varchar(50) NOT NULL,
    "author_id" integer NOT NULL REFERENCES "auth_user" ("id"),
    "enable_comments" bool NOT NULL,
    "featured" bool NOT NULL,
    "status" integer NOT NULL,
    "tags" varchar(255) NOT NULL,
    "excerpt_html" text NOT NULL,
    "body_html" text NOT NULL
)
;
CREATE INDEX "lebron_entry_56ae2a2a" ON "lebron_entry" ("slug");
CREATE INDEX "lebron_entry_337b96ff" ON "lebron_entry" ("author_id");
COMMIT;

結局、カラム スラッグがテーブルにあるようです。データベースを再作成したくありません。これを修正する他の方法はありますか? 私のアプリの名前はレブロンです

4

0 に答える 0