2016-12-06 65 views
0

在Django中,當我更改某列時,無論其數據類型是否爲foreignkey引用,它似乎都不起作用。舉個例子:Django MySQL添加ForeignKey

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) 

當我makemigrations &遷移它顯示爲 「OK」;沒有問題。但是,當我檢查數據庫時,它不會將這些更改顯示爲外鍵,而是顯示索引。

我不是一個SQL服務器大師,但通常當我從頭開始,這不是一個問題。我會馬上看到外鍵。在KEY_COLUMN_USAGE表中,我會看到關聯的reference_table _schema,table_name和column_name。

在這種情況下,我正在轉換一個網站,並從舊的SQL服務器引入數據。在上面提到的表和列中,它們顯示爲NULL。

我在這裏錯過了什麼?

這是使用兩個外鍵的CREATE TABLE tbl Communications的輸出。參考表應該是tbl CustomersCompany IDtbl ContactsContact 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 

回答

0

你爲什麼要設置自己的列?

該外鍵應該是其他模式

+0

我不是自己設置列。就像我說的,我設置了models.py並運行makemigrations&migrate。 – Flibertyjibbet

+0

你可以把你的models.py文件 –