DatabaseError:没有这样的列错误

Kev*_*vin 12 django django-models

所以我有一个模型,我想添加ImageField,所以我输入picture = models.ImageField(upload_to ='media/images')

然后我运行了syncdb并进入了shell:

python2 manage.py syncdb
python2 manage.py shell
Run Code Online (Sandbox Code Playgroud)

然后我导入了模型并尝试了

"model".objects.get(pk=1)
Run Code Online (Sandbox Code Playgroud)

我收到错误:

DatabaseError: no such column: people_people.picture
Run Code Online (Sandbox Code Playgroud)

当我为模型运行manage.py sql时

"picture" varchar(100) NOT NULL
Run Code Online (Sandbox Code Playgroud)

在数据库中.

你们有什么解决方案?我无法删除数据库中的数据.

Dun*_*kes 27

文档所述syncdb,不向现有表添加列,它只创建新表.

我建议跑

python manage.py sqlall <your_app>
Run Code Online (Sandbox Code Playgroud)

查看它为您正在更改的表输出的sql,然后运行

python manage.py dbshell
Run Code Online (Sandbox Code Playgroud)

为了手动发出ALTER TABLE命令.

将来,您可能希望使用像South这样的迁移工具.