2016-12-06 2 views
0

В Django, когда я изменяю столбец, независимо от его типа данных, ссылку на ссылку foreignkey, он, похоже, не работает. В качестве примера:Django MySQL Добавить ForeignKey

models.py От:

company_id = models.IntegerField(db_column='Company ID', blank=True, null=True) 

models.py To:

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 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 

ответ

0

Почему вы устанавливаете колонки самим?

ForeignKey должно быть в другой модели

+0

Я не устанавливаю колонку самостоятельно. Как я уже сказал, я настраивал models.py и запускал makemigrations & migrate. – Flibertyjibbet

+0

Вы можете скачать файл models.py –