在Django中,当我将列(无论其数据类型如何)更改为外键引用时,它似乎无法正常工作。举个例子:
models.py来自:
company_id = models.IntegerField(db_column='Company ID', blank=True, null=True)
models.py发送至:
company_id = models.ForeignKey('TblCompanies', db_column='Company ID', null=True, on_delete=models.CASCADE)
当我进行迁移并迁移时,它显示为“确定”;没有问题。但是,当我检查数据库时,它不会将这些更改显示为外键,而是显示索引。
无论如何,我都不是SQL Server专家,但是通常当我从头开始启动应用程序时,这不是问题。我马上就会看到外键。在KEY_COLUMN_USAGE表中,我将看到关联的reference_table _schema,table_name和column_name。
在这种情况下,我将转换一个网站,并从旧的SQL Server移出数据。在上面提到的表和列中,它们显示为NULL。
我在这里想念什么?
这是使用两个外键的CREATE TABLE
tbl Communications
的输出。参考表应为tbl Customers
。Company ID
和tbl Contacts
。Contact ID
tbl Communications | CREATE TABLE `tbl Communications` (
`Comm ID` int(11) NOT NULL AUTO_INCREMENT,
`Contact ID` int(11) DEFAULT '0',
`Rep` varchar(50) DEFAULT NULL,
`DateTime` datetime DEFAULT NULL,
`Type` varchar(50) DEFAULT NULL,
`Notes` longtext,
`Task ID` int(11) DEFAULT '0',
`Initiator` varchar(50) DEFAULT NULL,
`Alert` varchar(50) DEFAULT NULL,
`Date Entered` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
`Company ID` int(11),
KEY `Comm ID` (`Comm ID`),
KEY `Contact ID` (`Contact ID`),
KEY `DateTime` (`DateTime`),
KEY `Task ID` (`Task ID`),
KEY `tbl Communications_Company ID_2dac354a_uniq` (`Company ID`),
KEY `tbl Communications_Contact ID_01d40200_uniq` (`Contact ID`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8
最佳答案
为什么您自己设置列?
外键应该是其他模型
关于mysql - Django MySQL添加ForeignKey,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/41000234/