0

为什么我使用获取条目时无法保存条目filter?如果我用get.

我需要使用filter,因为我正在使用序列化程序返回 JSON 对象。并且 Django 的序列化器不喜欢它不是 QuerySet。

message = UserMessage.objects.filter(id=request.GET['msg_id'])
message[0].read = True
message[0].save()
4

2 回答 2

0

您可以使用查询集更新方法

UserMessage.objects.filter(id=request.GET['msg_id']).update(read=True)
于 2012-05-15T14:58:14.317 回答
0

除非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)
于 2012-05-15T15:05:43.437 回答