原理
- 核心科技 还是 case when 无他尔
- 但是既然使用了 orm 既然要优雅(装逼)有一点
版本 1 一条的更新 多个语句
from myapp.models import MyModel
# 更新id=1的数据
MyModel.objects.filter(id=1).update(name='test1')
# 更新id=21的数据
MyModel.objects.filter(id=21).update(name='zhangsan')
版本 2 一条的更新 一个语句
from django.db.models import Case, When
from myapp.models import MyModel
MyModel.objects.update(
name=Case(
When(id=1, then='test1'),
When(id=21, then='zhangsan'),
default='default_value'
)
)
版本 3 一条的更新 一个语句 循环入参
from django.db.models import Case, When
from myapp.models import MyModel
MyModel.objects.update(
name=Case(
When(id=1, then='test1'),
When(id=21, then='zhangsan')
# 没有 default 参数
)
)