मैं ऐसे व्यवहार में आया जो मैंने सोचा था कि कुछ प्रकार का कैशिंग था, लेकिन यह मुझे बेवकूफ़ बनाते हुए डेटाबेस लेनदेन साबित हुआ।
मैं इस समस्या जहां एक और इस प्रक्रिया में, आइटम डेटाबेस में जुड़ती गया था, और मैं अन्य प्रक्रिया की प्रगति की निगरानी करने के लिए चाहता था, इसलिए मैं एक Django खोल खोल दिया और जारी निम्नलिखित:
>>> MyData.objects.count()
74674
>>> MyData.objects.count()
74674
मान बदल नहीं रहा था, भले ही यह वास्तव में डेटाबेस में था। मुझे एहसास हुआ कि कम से कम जिस तरह से मेरे पास MySQL & django सेटअप था जो मैं लेनदेन में था और लेनदेन खोले जाने पर डेटाबेस के "स्नैपशॉट" को केवल तभी देखता था।
django में विचारों के साथ, मेरे पास स्वायत्त व्यवहार परिभाषित किया गया था, यह प्रत्येक दृश्य के लिए केवल एक स्नैपशॉट देखने के लिए ठीक था, क्योंकि अगली बार एक दृश्य कहा जाता था क्योंकि यह एक अलग लेनदेन में होगा। लेकिन कोड के एक टुकड़े के लिए जो स्वचालित रूप से नहीं चल रहा था, इस लेनदेन में किए गए लोगों को छोड़कर डीबी में कोई भी बदलाव नहीं दिखाई देगा।
बस सोचा कि मैं इस स्थिति पर आने वाले किसी भी व्यक्ति के लिए इस उत्तर को टॉस करूंगा।
हल करने के लिए, अपने लेन-देन है, जो मैन्युअल रूप से की तरह किया जा सकता है के लिए प्रतिबद्ध:
>> from django.db import transaction
>> transaction.enter_transaction_management()
>> transaction.commit() # Whenever you want to see new data
संभावित डुप्लिकेट http://stackoverflow.com/questions/3346124/how-do-i-force- django-to-ignore-any-caches-and-reload-data) –