私はこのコードを持っています:
object_id = request.POST.get('id')
try:
object = request.user.object_set.get(id=object_id, flag=False)
except Object.DoesNotExist:
object = None
object_id == None
もし なら、私はいつも を得るだろうと思っobject == None
た。しかし、いいえ!object_id
None の場合はobject
、DB から取得します。リモート デバッグを使用して、最初に評価したときrequest.user.object_set.get(id=object_id, flag=False)
に Object インスタンスを取得し、2 回目にこのコードを評価したときに DoesNotExist 例外が発生したことを確認しました。
このコードを書き直して、明示的にチェックobject_id
してから、DB にオブジェクトを取得するように依頼しました。私はただ興味があります-なぜこれが起こるのでしょうか? キャッシュの問題?また、小さなメモ - ローカル マシン (Windows 7) で期待どおりに動作します。サーバー (CentOS) でのみ動作するのではなく、同じバージョンの Python/Django で動作します。