【问题标题】:Database error in creating blog using django使用 django 创建博客时出现数据库错误
【发布时间】:2013-07-12 06:49:24
【问题描述】:

我正在尝试使用 django 创建简单的博客。 起初,我使用命令创建数据库

python manage.py syncdb

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

DatabaseError: 表 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
)

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

【问题讨论】:

  • 能否请您为我们运行manage.py sql <app_name>,并向我们展示输出,这将有助于我们了解您的问题。

标签: django python-2.7 django-models blogs


【解决方案1】:

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

您可以通过使用像 south 这样的迁移管理器来避免此类问题。

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

【讨论】:

    【解决方案2】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-07-17
      • 2015-05-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-02-04
      相关资源
      最近更新 更多