您的位置:首页技术文章
文章详情页

python - Django model foreignKey Reference

【字号: 日期:2022-07-25 13:26:23浏览:16作者:猪猪

问题描述

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

标签: Python 编程
相关文章: