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

如何在Django中通过条件CASE实现字段的设置与追加?

Django中实现指定UPDATE语句的正确写法

你需要使用Django ORM提供的Concat函数来实现SQL中的CONCAT功能,同时结合F()对象引用数据库字段的值,避免直接使用Python变量。修正后的代码如下:

from django.db.models import Case, When, F, Concat, Value

Table.objects.filter(someid__in=[id1, id2, id3]).update(
    column=Case(
        When(column="", then=Value("100")),
        default=Concat(F("column"), Value("100"))
    )
)

关键说明:

  • 导入Concat用于拼接字段值和字符串常量,Value用于包装字符串字面量(确保Django将其识别为SQL中的字符串值,而不是字段名)
  • 使用F("column")引用数据库中column字段的当前值,这样拼接操作会在数据库层面执行,而非Python代码中
  • Case的default分支对应SQL中ELSE的逻辑,用Concat(F("column"), Value("100"))实现CONCAT(column, '100')的效果

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 11:35:37