Mysql ';无法添加外键约束';在django迁移中

Mysql ';无法添加外键约束';在django迁移中,mysql,django,Mysql,Django,我尝试添加1:n关系,但无法添加外键约束 class PlatformEnv(models.Model): id = models.AutoField(db_column='ID', primary_key=True) tag_type = models.ForeignKey(Tagtypes, models.DO_NOTHING, db_column='Tag_Type', blank=True, null=True) class Tagtypes(models.Model)

我尝试添加1:n关系,但无法添加外键约束

class PlatformEnv(models.Model):
    id = models.AutoField(db_column='ID', primary_key=True)
    tag_type = models.ForeignKey(Tagtypes, models.DO_NOTHING, db_column='Tag_Type', blank=True, null=True)

class Tagtypes(models.Model):
   name = models.CharField(max_length=50, blank=True, null=True)
这是生成的迁移:

migrations.AddField(
    model_name='platformenv',
    name='tag_type',
    field=models.ForeignKey(blank=True, db_column='Tag_Type', null=True, on_delete=django.db.models.deletion.DO_NOTHING, to='polls.Tagtypes'),
),
数据库显示以下错误:

Error in foreign key constraint of table adtech_mandators/#sql-5de0_4cf61_130:
 FOREIGN KEY (`Tag_Type`) REFERENCES `TagTypes` (`id`):
Cannot find an index in the referenced table where the
referenced columns appear as the first columns, or column types
in the table and the referenced table do not match for constraint.
各表:

CREATE TABLE `TagTypes` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `name` varchar(50) DEFAULT NULL,
  PRIMARY KEY (`id`),
  UNIQUE KEY `name` (`name`)
) ENGINE=InnoDB AUTO_INCREMENT=8 DEFAULT CHARSET=latin1;

CREATE TABLE `PlatformEnv` (
  `ID` int(11) NOT NULL AUTO_INCREMENT,
  `Tag_Type` int(11) DEFAULT NULL,
  PRIMARY KEY (`ID`),
) ENGINE=InnoDB AUTO_INCREMENT=11 DEFAULT CHARSET=latin1;
更改:

tag_type = models.ForeignKey(Tagtypes, models.DO_NOTHING, db_column='Tag_Type', blank=True, null=True)
致:

正如错误所说:

表adtech_mandators/#sql-5de0_4cf61_130的外键约束出错: 外键(
Tag\u Type
)引用
TagTypes
id
):


您试图引用一个名为
Tag\u Type
的列,该列不存在。正确的名称是
TagTypes
,这是默认名称,不需要在外键选项中指定。

如果在
PlatformEnv
中从
Tag\u Type
中删除
db\u column='Tag\u Type'
会发生什么?它可以工作。你知道为什么吗?
tag_type = models.ForeignKey(Tagtypes, models.DO_NOTHING, blank=True, null=True)