ORM 之 更新 删除
1、update
# 单条数据更新
info = models.Student.objects.get(name='小三')
info.chinese_score = 61
info.save()
# 不推荐 模型对象的更新,性能差,把该条记录所有字段的值重新更新了
UPDATE `db_student` SET `name` = '小三', `age` = 18, `sex` = 1, `brithday` = '2011-12-11', `create_time` = '2023-03-27 14:41:07', `class` = '开发班', `math_score` = 55, `chinese_score` = 61 WHERE `db_student`.`id` = 1; args=('小三', 18, 1, '2011-12-11', '2023-03-27 14:41:07', '开发班', 55, 61, 1)
# 模型对象的更新 ,单条数据的更新
#
# info = models.Student.objects.filter(id=1).update(chinese_score=100,math_score=100)
# 模型对象的更新 ,多条数据的更新
# info = models.Student.objects.filter(id=1).update(chinese_score=100,math_score=100)
# print(info)
# 统一更新不同字段的值
from django.db.models import Q,F
# 统一修改 不同字段的值。 F 包裹的是字段的值 Q 包裹的是模型对象
# info = models.Student.objects.filter(age__gte=29).update(chinese_score = F('chinese_score')-20)
# print(info)
2、 删除
# orm中 pk默认代替主键的名称
#
# 模型对象删除 ,内置删除方法 删除单条数据
# info = models.Student.objects.get(pk=5).delete()
# print(info)
# query_set 内置删除多条数据
# info = models.Student.objects.filter(age__lt=30).delete()
# print(info)