所以情况就是这样:我在我的Event表中添加了一个新列(演示者)。我运行alter table
sql语句,运行python manage.py syncdb
。我正在尝试选择许多配置文件并将它们存储为演示者。为什么会这样?
Exception Type: DatabaseError
Exception Value: no such table: events_event_presenters
class Event(models.Model):
title = models.CharField(max_length=200)
presenters = models.ManyToManyField(Profile, null=True, blank=True) #new column
sub_heading = models.CharField(max_length=200)
description = models.TextField()
date = models.DateTimeField()
答案 0 :(得分:5)
您已将ManyToMany字段添加到现有表中,syncdb将无法检测到该字段。似乎django对我来说是一个缺点,但我想这是次要的。生成表的最简单方法是运行
./manage.py sql events
然后找到events_event_presenters
的定义并通过
./manage.py dbshell
答案 1 :(得分:0)
“没有这样的表”意味着您的数据库不包含具有您所写名称的表。
检查名称是否与数据库中的名称完全相同(如果保留大小写则更好)。 如果名称正常,请在表的名称前面设置您在其中创建表的数据库模式的名称,例如my_schema.my_table。