3

所以情况就是这样:我正在向我的事件表中添加一个新列(演示者)。我运行了alter tablesql 语句,运行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()
4

2 回答 2

5

您已将 ManyToMany 字段添加到现有表中,syncdb 不会检测到该字段。对我来说,这似乎是 django 的一个缺陷,但我想这是次要的。生成表的最简单方法是运行

./manage.py sql events

然后找到定义events_event_presenters并粘贴到您的数据库外壳中,通过

./manage.py dbshell
于 2012-07-03T21:49:15.373 回答
0

“没有这样的表”意味着您的数据库不包含具有您编写的名称的表。

检查名称是否与数据库中的名称完全相同(如果您保持大小写更好)。如果名称没问题,请将您创建表的数据库模式的名称设置在表名之前,例如 my_schema.my_table。

于 2012-07-03T21:10:41.667 回答