【问题标题】:Django MySQL Add ForeignKeyDjango MySQL 添加外键
【发布时间】:2016-12-06 16:29:01
【问题描述】:

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

当我进行迁移和迁移时,它显示为“OK”;没有问题。但是当我检查数据库时,它不会将这些更改显示为外键,而是索引。

无论如何我都不是 SQL 服务器专家,但通常当我从头开始 启动应用程序时,这不是问题。我会马上看到外键。在 KEY_COLUMN_USAGE 表中,我会看到相关的 reference_table _schema、table_name 和 column_name。

在这种情况下,我正在转换一个网站并从旧的 SQL 服务器中引入数据。在上面提到的表和列中,它们显示为 NULL。

我在这里错过了什么?

这是 CREATE TABLE tbl Communications 的输出,它使用两个外键。引用表应该是 tbl Customers.Company IDtbl 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 sql django django-models


    【解决方案1】:

    为什么要自己设置栏目??

    ForeignKey 应该是其他模型

    【讨论】:

    • 我不是自己设置栏目。就像我说的,我设置了 models.py 并运行 makemigrations & migrate。
    • 你可以放你的models.py文件
    猜你喜欢
    • 2021-04-04
    • 1970-01-01
    • 2013-02-26
    • 2020-08-27
    • 2017-05-10
    • 2014-06-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多