我在互聯網上發現了不同的例子,如何處理與現有的數據庫模型,如ex1或這裏ex2 m2m關係,但我仍然無法解決我得到的錯誤。 我的模特如下。基本上,手動創建的所有表。我收到以下錯誤信息: OperationalError: (1054, "Unknown column 'supervisor_project.id' in 'field list'")
。 我對unique_together
何時使用through
仍有些困惑。您是否看到下面模型中的任何錯誤?表supervisor_project
沒有id
字段,其PK實際上由兩個FK組成,即代理PK。現有表m2m(通過/ unique_together)
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'),)
謝謝@Alasdair!你將如何繼續在這種情況下。你會直接在數據庫中手動添加一個'id'字段給每個中間表嗎?或者django可以爲每個表自動創建一個「id」(在'model.py'中定義)? – Tin
謝謝@Alasdair!管理員現在正在修正之後工作,即手動將ID添加到數據庫模型。 – Tin