DatabaseError没有带有ManyToManyField的表

Mod*_*esq 3 python django django-models

所以情况就是这样:我在我的Event表中添加了一个新列(演示者).我跑了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()
Run Code Online (Sandbox Code Playgroud)

Gre*_*reg 5

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

./manage.py sql events
Run Code Online (Sandbox Code Playgroud)

然后找到定义events_event_presenters并粘贴到数据库shell中

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