Django model update常规用法

2020/11/19 DjangoPython

# 方式一

User.objects.filter(id=1).update(username='nick',is_active=True)

此方法适合更新一批数据,类似于 mysql 语句 update user set username='nick' where id = 1

# 方式二

_t = User.objects.get(id=1)
_t.username='nick'
_t.is_active=True
_t.save()

此方法适合更新一条数据,也只能更新一条数据,当只有一条数据更新时推荐使用此方法

当表有字段具有 auto_now 属性且你希望他能自动更新时,必须使用这种方法

# 另一种写法

data = {'username':'nick', 'is_active':'0'}
User.objects.filter(id=1).update(**data)

或者

data = {'username':'nick', 'is_active':'0'}
_t = User.objects.get(id=1)
_t.__dict__.update(**data)
_t.save()

这两种写法都不能自动更新具有 auto_now 属性字段的值

最近更新: 7 个月前