【发布时间】:2016-06-20 21:17:35
【问题描述】:
我在互联网上找到了有关如何处理与现有数据库模型的 m2m 关系的不同示例,例如ex1 或此处ex2,但是我仍然无法解决我得到的错误。
我的模型如下所示。基本上,所有手动创建的表。
我收到以下错误消息:
OperationalError: (1054, "Unknown column 'supervisor_project.id' in 'field list'")。
对于何时将unique_together 与through 一起使用,我仍然有些困惑。您在下面的模型中看到任何错误吗?表supervisor_project 没有id 字段,它的PK 实际上由两个FK 组成,即代理PK。
class Supervisor(models.Model):
name = models.CharField(max_length=45, blank=True, null=True, help_text="Name, e.g. John Smith")
class Meta:
managed = False
db_table = 'supervisor'
def __unicode__(self):
return self.name
class Project(models.Model):
title = models.CharField(max_length=45, blank=True, null=True)
supervisors = models.ManyToManyField(Supervisor, through='SupervisorProject', through_fields=('project', 'supervisor'))
class SupervisorProject(models.Model):
supervisor = models.ForeignKey('Supervisor', on_delete=models.CASCADE)
project = models.ForeignKey('Project', on_delete=models.CASCADE)
class Meta:
managed = False
db_table = 'supervisor_project'
unique_together = (('supervisor', 'project'),)
【问题讨论】:
标签: django django-models m2m