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

またはupdatejpic が提案するように、直接使用します。

UserMessage.objects.filter(id=request.GET['msg_id']).update(read=True)
于 2012-05-15T15:05:43.437 に答える