Django更新条目

时间:2012-05-15 14:47:15

标签: django django-models

当我使用filter获取条目时,怎么也无法保存条目? 如果我使用get获取它,它就可以工作。

我需要使用filter,因为我正在使用序列化程序返回一个JSON对象。如果它不是QuerySet,那么Django的序列化程序就不喜欢了。

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

2 个答案:

答案 0 :(得分:0)

您可以使用queryset update method

UserMessage.objects.filter(id=request.GET['msg_id']).update(read=True)

答案 1 :(得分:0)

除非message被评估并因此被缓存,message[0]总是命中数据库,例如

>>> 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)