我目前正在MySQL中使用django,在使用'inspectdb'命令创建模型.py文件。在
DDL优先:
CREATE TABLE YDB_Collects (
COriginal_Data_Type_ID VARCHAR(16) NOT NULL,
CTask_Name VARCHAR(16) NOT NULL,
PRIMARY KEY (COriginal_Data_Type_ID, CTask_Name),
INDEX FK_COLLECTS_TASK (CTask_Name),
CONSTRAINT FK_COLLECTS_ORIGINAL_DATA_TYPE FOREIGN KEY (COriginal_Data_Type_ID) REFERENCES YDB_Original_Data_Type (Original_Data_Type_ID),
CONSTRAINT FK_COLLECTS_TASK FOREIGN KEY (CTask_Name) REFERENCES YDB_Task (Task_Name)
)
如您所见,COriginal_Data_Type_ID和CTask_Name是外键,而且两者都是复合主键。在
在DDL django的'inspectdb'命令给出此模型后:
^{pr2}$然后,当我运行“makemigrations”命令时,它会给我错误消息:“unique一起指的是不存在的字段”“COriginal”“Data”“u Type”“ID”“和”“CTask”“u Name”“。”。在
当我改变
unique_together = (('COriginal_Data_Type_ID', 'CTask_Name'),)
进入
unique_together = (('coriginal_data_type ', 'ctask_name'),)
好吧,没问题,但这是正确的方法吗?似乎下面的代码和我的DDL有不同的模式…我定义的原始外键是数据类型的id,而不是数据类型本身。在
我做错什么了?我的原始数据字段和CTask名称字段在哪里?在
好的,多亏了knbk和django dev的回答是的,这是django的bug,这里有一个bug修复代码:
https://raw.githubusercontent.com/jbzdak/django/ticket_251274/django/core/management/commands/inspectdb.py
您可以下载并覆盖检验数据库.py文件位置:
C:\Python27\Lib\site packages\django\core\management\commands
相关问题 更多 >
编程相关推荐