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

请教一下,要如何改写,才能实现我的预期效果?

阅读 3.1k
1 个回答

看来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, that field must have unique=True.

所以改db_column为to_field就行了

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题