使用django创建博客时出现数据库错误

时间:2013-07-12 06:49:24

标签: django python-2.7 django-models blogs

我正在尝试使用django创建简单的博客。 首先,我用命令

创建了数据库
  

python manage.py syncdb

当我尝试保存博客帖子时,我收到以下错误

  

DatabaseError:table blog_app_post没有名为body

的列

models.py代码:

 from django.db import models
    from taggit.managers import TaggableManager

        class Post(models.Model):
            title = models.CharField(max_length=255)
            body = models.TextField()
            created = models.DateTimeField()
            tags = TaggableManager()
            def __unicode__(self):
                return self.title

但名为body的列实际上是在Db。

中创建的
BEGIN;
CREATE TABLE "blog_app_post" (
    "id" integer NOT NULL PRIMARY KEY,
    "title" varchar(255) NOT NULL,
    "body" text NOT NULL,
    "created" datetime NOT NULL
)

这个错误是什么意思,任何人都会为此提出解决方案?

2 个答案:

答案 0 :(得分:0)

你怎么说它是创建的,你用python manage.py sqlall检查它?

最初运行syncdb后是否添加了字段body?在这种情况下,您将不得不使用迁移。

答案 1 :(得分:0)

这可能是因为您更改了帖子数据结构的结构。您现在需要做的是删除上一个表的架构并粘贴到新表中。

您可以使用south等迁移管理器来避免此类问题。

因此,为了解决这个问题,运行manage.py sql <app_name>,然后只需复制列表中的最新SQL表,即打印的第一个表。然后你只需maange.py dbshell,然后粘贴并运行SQL。