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. android - weex 項目createInstanceReferenceError: Vue is not defined2. PHPExcel表格導入數據庫怎么導入3. android - 哪位大神知道java后臺的api接口的對象傳到前端后輸入日期報錯,是什么情況?求大神指點4. javascript - 如圖,百度首頁,查看源代碼為什么什么都沒有?5. pdo 寫入到數據庫的內容為中文的時候寫入亂碼6. vue2.0+webpack 如何使用bootstrap?7. PHP類封裝的插入數據,總是插入不成功,返回false;8. mac連接阿里云docker集群,已經卡了2天了,求問?9. 請問PHPstudy中的數據庫如何創建索引10. python - 小白django提交數據后,沒有存儲到數據庫(查閱資料并沒有發現問題)
