2011-10-25 13 views
5

शीर्षक बहुत अधिक कहता है: मैं कच्चे_पोस्ट_डाटा का उपयोग कुछ विचारों में करता हूं, और इस प्रकार मुझे परीक्षण क्लाइंट को उचित रूप से पहुंच प्रदान करने की आवश्यकता होती है।django परीक्षण क्लाइंट में raw_post_data एक्सेस करें

मैंने नकली अनुरोध से raw_post_data स्ट्रिंग की प्रतिलिपि बनाई है, इसे json.loads() पर पास कर दिया है, और उसके बाद परिणामी निर्देश का उपयोग परीक्षण क्लाइंट के लिए POST डेटा के रूप में किया है। फिर, मैंने सामग्री प्रकार को "एप्लिकेशन/जेसन" पर सेट किया - इससे कच्चे_पोस्ट_डेटा दिखाई देने का कारण बनता है, लेकिन यह नकली अनुरोध के समान कच्चे_पोस्ट_डेटा नहीं है।

+0

क्या आप दिखाई देने वाले डेटा (उस बीच के बीच अंतर) पोस्ट कर सकते हैं और जिस अनुरोध से आप अपेक्षा कर रहे हैं? – jro

उत्तर

4

जब आप परीक्षण क्लाइंट में सामग्री प्रकार बदलते हैं, तो डेटा पैरामीटर को अब एक शब्दकोश के रूप में पार्स नहीं किया जाता है लेकिन सीधे भेजा जाता है। अपने JSON स्ट्रिंग को सीधे अपने पोस्ट अनुरोध के डेटा पैरामीटर के रूप में कॉपी करने का प्रयास करें, आपको इसे अपने एप्लिकेशन में raw_post_data में प्राप्त करना चाहिए।

2

बस के रूप में निम्न चरणों का पालन करने की जरूरत है:
        1. अपने स्ट्रिंग करने के लिए डेटा विशेषता निर्धारित किया है।
        2. तो आवेदन/ओकटेट धारा करने के लिए content_type विशेषता निर्धारित किया है।

payload = {'k1':'v1'} 
    data = json.dumps(payload) 
    response = self.client.post(url, data=data, content_type='application/octet-stream', **self.auth_headers) 
+0

यह आकर्षण की तरह काम किया। संदर्भ: https://docs.djangoproject.com/en/1.9/_modules/django/test/client/ – Blas

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