मैं Django सिग्नल के साथ काम कर रहा हूं, लेकिन उन्हें दो बार प्राप्त होने लगते हैं, भले ही एक बार उत्सर्जित हो। यहाँ कोड के साथ मैं काम कर रहा हूँ (यह Django के साथ Uploadify उपयोग करने के लिए एक सरल आवरण है) ...Django सिग्नल एक बार उत्सर्जित, दो बार प्राप्त किया - क्यों?
# Signal-emitting code... emits whenever a file upload is received
# ----------------------------------------------------------------
upload_recieved = django.dispatch.Signal(providing_args=['data'])
def upload(request, *args, **kwargs):
if request.method == 'POST':
if request.FILES:
print 'sending signal'
upload_recieved.send(sender='uploadify', data=request.FILES['Filedata'])
return HttpResponse('True')
# Signal-receiving code...
# ----------------------------------------------------------------
def upload_received_handler(sender, data, **kwargs):
print 'upload received handler'
print 'connecting signal'
upload_recieved.connect(upload_received_handler)
(मैं सिर्फ देखा मेरी संकेत गलत वर्तनी है)
मैं तुम्हें यकीन है वहां प्रिंट विवरणों पर ध्यान दिया। कंसोल पर, यह यह क्या दिखा रहा है है:
(server starts)
connecting signal
...
sending signal
upload received handler
upload received handler # << == where is this 2nd one coming from?
127.0.0.1 - - [25/Sep/2009 07:28:22] "POST /uploadify/upload/ HTTP/1.1" 200 -
क्यों पोस्ट लॉग लाइन के बाद आता है का सवाल है, मेरा मानना है कि सर्वर तब तक प्रतीक्षा करता है जब तक अनुरोध लॉग इन करने के लिए समाप्त नहीं हो जाता है - केवल तभी यह पता चलेगा कि कोई सर्वर त्रुटि है जिसके परिणामस्वरूप 500 स्थिति कोड बनाम एक सफल अनुरोध है, लॉग अनुरोध में इत्यादि के अनुरोध में कितना समय लगेगा। – dcrosta