为什么我使用获取条目时无法保存条目filter
?如果我用get
.
我需要使用filter
,因为我正在使用序列化程序返回 JSON 对象。并且 Django 的序列化器不喜欢它不是 QuerySet。
message = UserMessage.objects.filter(id=request.GET['msg_id'])
message[0].read = True
message[0].save()
为什么我使用获取条目时无法保存条目filter
?如果我用get
.
我需要使用filter
,因为我正在使用序列化程序返回 JSON 对象。并且 Django 的序列化器不喜欢它不是 QuerySet。
message = UserMessage.objects.filter(id=request.GET['msg_id'])
message[0].read = True
message[0].save()
您可以使用查询集更新方法:
UserMessage.objects.filter(id=request.GET['msg_id']).update(read=True)
除非message
被评估并因此被缓存,否则message[0]
总是命中 DB,例如
>>> qs = User.objects.all()
>>> qs[0] is qs[0]
False
>>> bool(qs) # evaluate, len(qs) or iterating on qs also do
>>> qs[0] is qs[0]
True
你可以将它分配给变量
message = UserMessage.objects.filter(id=request.GET['msg_id'])[0]
message.read = True
message.save()
或update
直接使用,如 jpic 建议的那样:
UserMessage.objects.filter(id=request.GET['msg_id']).update(read=True)