सब, मुझे django सिग्नल के साथ कोई समस्या है।मैं अपने post_save सिग्नल के दौरान किसी ऑब्जेक्ट को क्यों एक्सेस कर सकता हूं, लेकिन जब मैं उस सिग्नल के भीतर कोड ट्रिगर नहीं करता जो इसे किसी अन्य प्रक्रिया पर कॉल करता है
मेरे पास एक मॉडल है पेज लोड की प्रतिक्रिया को तेज करने के प्रयास में, मैं कुछ गहन प्रसंस्करण को ऑफ़लोड कर रहा हूं, जो एक दूसरे डेटाबेसहोस्ट वेबसर्वर को कॉल के माध्यम से किया जा सकता है, दोनों एक ही डेटाबेस का उपयोग करते हुए । मैं व्यवहार देख रहा हूं जहां कॉलिंग प्रक्रिया ऑब्जेक्ट को पुनर्प्राप्त कर सकती है, लेकिन कहा जाता है कि प्रक्रिया नहीं हो सकती है। पोर्ट 80 और पोर्ट [पोर्ट] दोनों एक ही डेटाबेस से चल रहे django प्रक्रियाओं को इंगित कर रहे हैं।
views.py
def some_view_function(request, a_pk):
#This line raises an object_not_found exception
A.objects.get(pk=a_pk)
में models.py
class A(models.Model):
stuff...
def trigger_on_post_save(sender, instance, create, raw, **keywords):
#This line works
A.objects.get(pk=instance.pk)
#then we call this
urlopen(r'http://127.0.0.1:[port]' +
reverse(some_view_url, args(instance_pk)).read()
post_save.connect(trigger_on_post_save, A)
में इसके अलावा, के बाद urlopen कॉल एक अपवाद को जन्म देती है, वस्तु डेटाबेस में मौजूद नहीं है। यह मेरी समझ थी कि ऑब्जेक्ट को सहेजने के बाद post_save को कॉल किया गया था, और डेटाबेस में लिखा गया था। क्या यह गलत है?
चाहिए ना हो: रिवर्स (some_view_url, आर्ग (instance.pk)) .read()? सेलेरी की ओर बढ़ने के लिए –