django foreignkey 中的 self 递归用法

在Django中,当需要模型的主键与自身形成多对一关系时,直接使用models.ForeignKey('self')会导致保存时主键不存在的错误。解决方法是创建一个抽象基类AbstractNavi,将外键字段定义在其中,然后让具体模型Navi继承这个抽象基类。这样可以成功保存包括第一个数据在内的所有记录。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

django 主键要与自己行成多对一的关系时可以用models.foreignkey('self'),如果直接存储会提示主键不存在,无法保存.

例如:我想做一个导航类,这些导航存储着自己的父节点,一开始写法为:

 

该做法无论如何都无法存储第一个数据的,因为你在存储第一个数据时它的主键还未产生,无法形成多对一关系.修改方法如下:

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值