2017-02-28 9 views
1

Djangoの以下のコードは、常に同じ結果を出力しています。 mysql DBにさらに多くの行があっても。助けてください。Django Mysqlはループでクエリを実行していますが、同じ出力を得ています

 
    while True: 
     print Event.objects.last().id 
     time.sleep(5) 

====編集==== 私は逃した何か重要なことがありました。上記は適切な結果を示していますが、以下は正しくありません。私はここでスレーブdbを使用しています。しかし、疑問はまだ変わっていません。これは、問題を作り出しているスレーブのDB設定があることを意味しますか?

 
    while True: 
     print Event.objects.using("read").last().id 
     time.sleep(5) 
+0

私はdjangoがクエリーセットをリクエストスレッドにキャッシュすると思います。これをさらに実行すると、同じ値が返されます。 –

+0

はい、djangoはクエリをキャッシュしているようですが、どうすればよいですか。 connection.close()とtransaction.commit()も役に立ちませんでした。 – Deepak

答えて

1

[OK]をあなたに見ることができ、これを解決するために。全体的に

How to disable Django query cache?

。メソッドenter_transaction_managementはもはやdjango 1.1にはありません。

from django.db import transaction 
transaction.enter_transaction_management() 
transaction.commit() 
関連する問題