質問があります...
message_batch = Message.objects.all()[500]
オブジェクトを取得するために別のデータベース呼び出しを行う必要はありません。また、オブジェクトが既にメモリ内にあるため、ポイントは何ですか。
だから私はこのように更新しようとしました:
message_batch.update(send_date=datetime.datetime.now(), status="Sent")
しかし、次のエラー メッセージが表示されます。
スライスが取得されると、クエリを更新できません。
なんで?この辺りはありますか?既にメモリ内にあるオブジェクトを更新して、それらを取得するために別の呼び出しを行わないようにしたい。
これは私の完全なコードであり、これを回避する必要があります....
total = Message.objects.filter(status="Unsent", sender=user, batch=batch).exclude(recipient_number__exact='').count()
for i in xrange(0,total,500):
message_batch = Message.objects.filter(status="Unsent").exclude(recipient_number__exact='')[i:i+500]
# do some stuff here
# once all done update the objects
message_batch.update(send_date=datetime.datetime.now(), billed=True)