0

我有这个模型

class Category(models.Model):
category_name= models.CharField(max_length=255)
sub_category_ID = models.IntegerField(null=True, blank=True)
def __unicode__(self):
    return self.category_name

我已经在表中有数据,但我想在sub_category_ID不删除整个数据库的情况下将其更改为。

class Category(models.Model):
category_name= models.CharField(max_length=255)
sub_category_ID = models.ForeignKey('self',null=True, blank=True)
def __unicode__(self):
    return self.category_name

所以我在更改模型后运行了syncdb,它给了我警告。

The following content types are stale and need to be deleted:
uTriga | event_event_category
Any objects related to these content types by a foreign key will also
be deleted. Are you sure you want to delete these content types?
If you're unsure, answer 'no'.`

我输入了是,现在出现错误

column app_category.sub_category_ID_id does not exist

列 uTriga_category.sub_category_ID_id 不存在

4

1 回答 1

0

默认情况下,Django syncdb 机制不允许模型更改。必须删除并重新创建整个数据库。只能在两次 syncb 运行之间添加新模型。

因此,您可能希望使用一些“迁移”工具来允许数据库模式的渐进演进。使用一个恕我直言,这几乎总是一个非常好的主意。

South是 Django 最有名的地方,到目前为止,我对它非常满意。

于 2012-08-21T09:50:03.783 回答