当我使用filter
获取条目时,怎么也无法保存条目?
如果我使用get
获取它,它就可以工作。
我需要使用filter
,因为我正在使用序列化程序返回一个JSON对象。如果它不是QuerySet,那么Django的序列化程序就不喜欢了。
message = UserMessage.objects.filter(id=request.GET['msg_id'])
message[0].read = True
message[0].save()
答案 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)