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

Django数据库路由如何向**hints参数传值?常见错误如何解决?

Django 数据库路由hints参数正确传递方式

读操作

通过QuerySet提供的with_hints()方法传递自定义参数,参数会直接透传到db_for_read的hints字典中:

TestModel.objects.with_hints(params="Hello World").filter()

写操作

批量操作(update/delete等)

和读操作逻辑一致,直接在QuerySet上链式调用with_hints()即可:

# 批量更新示例
TestModel.objects.with_hints(params="Hello World").filter(status=0).update(status=1)
# 批量删除示例
TestModel.objects.with_hints(params="Hello World").filter(id__lt=10).delete()

单实例save操作

  • Django 4.2及以上版本:save()方法原生支持hints参数,直接传入即可:
    instance = TestModel.objects.filter().first()
    instance.name = "修改后的名称"
    instance.save(hints={"params": "Hello World"})
    
  • Django 4.2以下版本:save()没有原生hints参数,可通过给实例_state属性设置hints实现传递:
    instance = TestModel.objects.filter().first()
    instance.name = "修改后的名称"
    instance._state.hints = {"params": "Hello World"}
    instance.save()
    

内容的提问来源于stack exchange,提问作者lifelike

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 18:36:03