我正在尝试使用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
)
这个错误是什么意思,任何人都会为此提出解决方案?
答案 0 :(得分:0)
你怎么说它是创建的,你用python manage.py sqlall
检查它?
最初运行syncdb后是否添加了字段body
?在这种情况下,您将不得不使用迁移。
答案 1 :(得分:0)
这可能是因为您更改了帖子数据结构的结构。您现在需要做的是删除上一个表的架构并粘贴到新表中。
您可以使用south
等迁移管理器来避免此类问题。
因此,为了解决这个问题,运行manage.py sql <app_name>
,然后只需复制列表中的最新SQL表,即打印的第一个表。然后你只需maange.py dbshell
,然后粘贴并运行SQL。