搜尋

首頁  >  問答  >  主體

python - Django 模型foreignKey 參考

我期待用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

請教一下,要如何改寫,才能達到我的預期效果?

黄舟黄舟2757 天前603

全部回覆(1)我來回復

  • PHP中文网

    PHP中文网2017-05-18 10:48:04

    看來db_column參數不能指定使用哪個欄位作外鍵(估計樓主使用過sqlalchemy),

    查看下django ForeignKey 文件有這個參數

    ForeignKey.to_field
    The 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, key of the related object. If you reference a different field, that field must。

    所以改db_column為to_field就行了

    回覆
    0
  • 取消回覆