python - Django model foreignKey Reference
問題描述
我期待用django創建數據庫的時候實現以下效果
表1
CREATE TABLE Persons(Id_P int NOT NULL,LastName varchar(255) NOT NULL,FirstName varchar(255),Address varchar(255),City varchar(255),UNIQUE (Id_P),PRIMARY KEY (LastName))
表2
CREATE TABLE Orders(Id_O int NOT NULL,OrderNo int NOT NULL,Id_P int,PRIMARY KEY (Id_O),FOREIGN KEY (Id_P) REFERENCES Persons(Id_P))
表2的外鍵關聯到表一的Id_P,而不是LastName
但在django中
Id_P = models.ForeignKey(’Persons’,db_column=’Id_P’)
這樣寫,django會自動關聯到Persons表的主鍵,而非我期待的Id_P
請教一下,要如何改寫,才能實現我的預期效果?
問題解答
回答1:看來db_column參數不能指定使用哪個字段作外鍵(估計樓主使用過sqlalchemy),
查看下django ForeignKey 文檔有這個參數
ForeignKey.to_fieldThe field on the related object that the relation is to. By default, Django uses the primary key of the related object. If you reference a different field, that field must have unique=True.
所以改db_column為to_field就行了
相關文章:
1. 在mac下出現了兩個docker環境2. 利用IPMI遠程安裝centos報錯!3. 運行python程序時出現“應用程序發生異常”的內存錯誤?4. 測試自動化html元素選擇器元素ID或DataAttribute [關閉]5. spring-mvc - spring-session-redis HttpSessionListener失效6. 淺談Vue使用Cascader級聯選擇器數據回顯中的坑7. javascript - 在 model里定義的 引用表模型時,model為undefined。8. javascript - 最近用echarts做統計圖時遇到兩個問題!!9. mysql - 查詢 修改數據庫優化問題吧10. java - Spring boot 讀取 放在 jar 包外的,log4j 配置文件,系統有創建日志文件,不寫入日志信息。

網公網安備