2017-02-28 2 views
1

Dieser unter Code in Django druckt die gleichen Ergebnisse die ganze Zeit. Auch wenn es mehr Zeilen in der MySQL-DB gibt. Bitte Hilfe.Django Mysql Abfrage in Schleife, aber gleiche Ausgabe

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

==== ==== bearbeiten war es etwas Wichtiges ich verpasst. Das Obige liefert korrekte Ergebnisse, aber unter einem ist es nicht. Ich benutze Slave db hier um zu lesen. Aber die Frage bleibt immer noch dieselbe. Bedeutet dies, dass es eine Slave-DB-Konfiguration gibt, die ein Problem verursacht?

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

Ich denke, Django zwischenspeichert die Abfrage in Anfrage Thread. Eine weitere Ausführung derselben wird den gleichen Wert zurückgeben. –

+0

Ja, es scheint, dass Django die Abfrage zwischenspeichert, aber was soll ich tun. connection.close() und transaction.commit() haben auch nicht geholfen. – Deepak

Antwort

1

Ok, dies zu lösen, die Sie hineinblicken kann.

How to disable Django query cache?

Insgesamt. Die Methode enter_transaction_management gibt es nicht mehr in django 1.1

from django.db import transaction 
transaction.enter_transaction_management() 
transaction.commit() 
Verwandte Themen