我想用Django更新一个表 - 在原始SQL中是这样的:
update tbl_name set name = 'foo' where name = 'bar'
Run Code Online (Sandbox Code Playgroud)
我的第一个结果是这样的 - 但这很讨厌,不是吗?
list = ModelClass.objects.filter(name = 'bar')
for obj in list:
obj.name = 'foo'
obj.save()
Run Code Online (Sandbox Code Playgroud)
有更优雅的方式吗?
我想这样做:
UserLog.objects.filter(user=user).filter(action='message').filter(timestamp__lt=now)[0:5].update(read=True)
Run Code Online (Sandbox Code Playgroud)
但我收到这个错误:
Cannot update a query once a slice has been taken.
Run Code Online (Sandbox Code Playgroud)
(使用django 1.2.1)
我究竟做错了什么?