2009-08-29 3 views
6

क्या एंजैक्स कॉल करने के लिए jQuery का उपयोग करते समय Django प्रदान की गई डीबग जानकारी प्राप्त करने का कोई अच्छा तरीका है? अभी जब मैं कॉल करता हूं, तो मुझे सिर्फ पाइथन रनरवर विंडो में http/200 सर्वर त्रुटि दिखाई देती है, लेकिन क्योंकि जावास्क्रिप्ट के माध्यम से कॉल किया जाता है, मुझे सभी जानकारी के साथ डीबग पेज नहीं मिलता है।अजाक्स कॉल का उपयोग करते समय Django डीबग जानकारी प्राप्त करना?

उत्तर

3

आप अपने jQuery AJAX कॉल पर लौटाई गई प्रतिक्रिया की सामग्री का निरीक्षण कर सकते हैं। फ़ायरबग जैसे टूल का उपयोग करके यह बहुत आसान हो सकता है।

Django अभी भी डीबग पेज वापस कर देगा, यह सिर्फ एक नियमित ब्राउज़र अनुरोध के बजाय AJAX कॉल का जवाब दे रहा है।

नियमित रूप से अनुरोधों के साथ काम करने के लिए अक्सर एक अच्छी तकनीक होती है, और फिर सर्वर साइड कोड काम कर रहा है, तो केवल उन्हें "AJAXify" करें।

+0

इसके बारे में परेशान करना यह सब अनपेक्षित HTML प्रारूप में है। मुझे लगता है कि मैं इसे सिर्फ एक div में लोड कर सकता हूं ... – victor

+2

वास्तव में फ़ायरबग फ़ायरफ़ॉक्स में एक नए टैब के रूप में लौटाए गए HTML को खोल सकता है, ताकि आप इसे उचित प्रारूप में देख सकें। –

+0

आह हा, यह कर देगा! – victor

1

आप इस स्निपेट का उपयोग कर सकते हैं: http://www.djangosnippets.org/snippets/650/ HTML के बजाय फायरबग में देखने के लिए सादा टेक्स्ट ट्रेसबैक प्राप्त करने के लिए।

0

शायद सबसे आसान तरीका डीबग बंद करना है, और Django भेजता है ईमेल डीबग संदेशों पर भरोसा करते हैं। हालांकि, यह अक्सर व्यावहारिक नहीं है, लेकिन यह काम करता है।

0

django_extensions + Werkzeug आज़माएं।

1

जब आपको एजेक्स त्रुटि मिलती है, तो आप सर्वर से लौटाए गए डीबग/त्रुटि दस्तावेज़ के साथ अपनी वर्तमान दस्तावेज़ सामग्री को प्रतिस्थापित कर सकते हैं। उदाहरण के लिए, आप निम्नलिखित की तरह कुछ कर सकते हैं:

$.ajax({ 
    url: 'failing_controller/', 
    type: 'POST' 
}) 
    .fail(function (jqXHR, textStatus, errorThrown) { 
     document.open(); 
     document.write(jqXHR.responseText); 
     document.close(); 
    }) 
    .success(function (data, textStatus, jqXHR) { 
     // ... handle data ... 
    }); 

यह, विकास और डीबगिंग के दौरान वास्तव में सहायक हो सकता है, क्योंकि यह आप वास्तविक समय में सर्वर राज्य का निरीक्षण करने देता है। आप असफलता हैंडलर को उत्पादन वातावरण में कुछ और उचित के साथ बदलना चाहते हैं।

संबंधित मुद्दे