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 - 微信这个效果是怎么实现的2. javascript - 关于正则表达式的一些问题3. javascript - js控制元素样式的疑惑4. javascript - console.log问题,交换二叉树左右节点,交换前后输出相同结果5. 网页爬虫 - Python爬虫返回状态码与实际情况不符?6. ueditor上传服务器提示后端配置项没有正常加载,求助!!!!!7. android - 第三方App调用高德地图,总是直接进入到导航页面,有没有办法进入首页?8. python - Django找不到报错找不到模块,但是文件中有9. javascript - 网页中如何插入这样一个音乐播放的界面呢?,用引用的src嘛?10. mysql5.7 json数据类型存储 导致数据顺序发生变化