2012-05-15 90 views
0

當我通過使用filter獲取條目時,爲什麼不能保存條目? 它工作,如果我拿它與getDjango更新條目

我需要使用filter,因爲我使用序列化程序返回JSON對象。 Django的序列化程序不喜歡它是否不是QuerySet。

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

回答

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)