我有一个现有的MySQL数据库,其中包含一个表,其中包含另一个表的外键。我在Django 1.10中使用了inspectdb
来构建以下模型:
class Contested(models.Model):
candidate = models.ForeignKey('Candidate',default=None)
district = models.CharField(max_length=10)
state = models.CharField(max_length=45)
num_votes = models.IntegerField()
per_votes = models.DecimalField(max_digits=3, decimal_places=2)
incumbent = models.IntegerField()
year = models.IntegerField()
class Meta:
managed = False
db_table = 'contested'
unique_together =(("district","state","year","candidate","num_votes"),)
class Candidate(models.Model):
first_name = models.CharField(max_length=45, blank=True, null=True)
last_name = models.CharField(max_length=45)
class Meta:
managed = False
db_table = 'candidate'
然而,当我尝试迁移时,我得到django.db.utils.OperationalError: (1060, "Duplicate column name 'candidate_id'")
我相信这是因为我的数据库中已经有了一个外键关系(列候选列表已经在Contested表中),但是Django正在尝试构建关系本身通过向Contested表添加列candidate_id
(尽管托管为False)。
有没有办法让Django识别外键关系已经存在?