【发布时间】:2013-03-19 02:22:08
【问题描述】:
我在 django 中创建模型时遇到问题。我写了一个这样的模型:
from django.db import models
class FooModel(models.Model):
name = models.CharField(max_length = 255)
我跑
manage.py syncdb
但是当我在 shell 中时,我无法保存实例。每次我调用它时,它都会告诉我它缺少一列
manage.py shell
>>from app.models import FooModel
>>foo = FooModel()
>>foo.name = 'foo'
>>foo.save()
DatabaseError: column "name" of relation "ecommerce_foomodel" does not exist
LINE 1: INSERT INTO "ecommerce_foomodel" ("name") VALUES (E'123123as...
我们正在使用 postgres。
【问题讨论】:
-
您可能想尝试通过“manage.py reset ecommerce”重置应用程序,甚至重新创建数据库,然后再同步数据库。
-
如何重新创建数据库?抱歉,我对这一切有点陌生。
-
您必须进行重置的原因是,如果您有一个名为
ecommerce_foomodel的现有表,那么syncdb将忽略它,它不会更改表以添加任何新列。它只会在表不存在时创建。 -
如果您使用 postgres 并且重置不起作用,我只会使用 pgadminIII 删除并重新创建数据库。
标签: python django postgresql django-models