You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Django中如何直接给外键字段传入整数值,无需传递关联模型实例?

Django外键直接传入关联整数值的解决方法

Django外键字段默认需要接收关联模型的实例,即使配置了to_field参数也无法直接传入原始关联值,要实现直接传整数值赋值,可按以下方式修改:

1 优化视图重复创建订单的问题

原代码中重复调用了两次form.save(),会生成两条完全一致的Order记录,先修正这部分:

# 替换原有的两行save代码
# form.save()
# theSameForm = form.save()
new_order = form.save()

2 修改OrderedBook实例创建逻辑

创建实例时使用Django自动为外键生成的_id后缀字段,即可直接传入订单号整数值:

newOrderedBook = OrderedBook.objects.create(
    orderNumber_id = new_order.pk, # 外键字段加_id后缀即可直接传整数值
    user = request.user,
    book = book,
)

原理解释

Django对所有外键字段都会自动生成一个[外键名称]_id的隐式属性,该属性直接对应数据库中存储的关联字段值,无论外键通过to_field指定关联到目标模型的哪个字段,都可以通过该属性直接读写原始值,无需提前查询出关联模型的实例。


内容的提问来源于stack exchange,提问作者Стопчак Олег

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.25 16:36:03