2012-02-21 11 views
6

डिफ़ॉल्ट रूप से, जब Django-tastypie का उपयोग कर और एक संसाधन की सूची प्राप्त करने, प्रतिक्रिया स्वरूप की है:क्या django-tastypie ऑब्जेक्ट कुंजी सेट करना संभव है?

{ 
    "meta": { 
     "limit": 20, 
     "next": null, 
     "offset": 0, 
     "previous": null, 
     "total_count": 3 
    }, 
    "objects": [{ 
     "body": "Welcome to my blog!", 
     "id": "1", 
     "pub_date": "2011-05-20T00:46:38", 
     "resource_uri": "/api/v1/entry/1/", 
     "slug": "first-post", 
     "title": "First Post", 
     "user": "/api/v1/user/1/" 
    }, 
    ... 
    ] 
} 

मैं प्रलेखन में खोदे गए हैं और लग रहा था & देखा, लेकिन मुझे लगता है नहीं कर पा रहे वास्तव में लौटाए गए आइटमों का वर्णन करने के लिए किसी भी प्रकार का मेटा विकल्प या "ऑब्जेक्ट्स" कुंजी बदलने के लिए सेटिंग। उदाहरण के लिए, मान लीजिए कि मेरे पास एक एपीआई कॉल और अन्य लोगों की सूची में स्थानों की सूची है। मैं "स्थानों" और "लोगों" की कुंजी को अलग करने में सक्षम होना चाहता हूं। इसका असली कारण यह है क्योंकि मैं आईओएस पर रेस्टकिट का उपयोग कर रहा हूं और कई मैपिंग सेट अप करने में सक्षम होना चाहता हूं।

+0

मैं एक ही मुद्दा था। मैंने दस्तावेज़ों, स्रोत कोड, यहां तक ​​कि जिथब इश्यू ट्रैकर के माध्यम से खोला और कुछ भी नहीं मिला, इसलिए मैंने छोड़ दिया। मुझे यकीन है कि इस समय यह संभव नहीं है, लेकिन मुझे गलत सिद्ध होना अच्छा लगेगा। –

उत्तर

15

संसाधन हुक alter_* डेटा की संरचना को बदलने के लिए उपयोग किया जा सकता है।

एक उदाहरण संसाधन 'स्थान' का उपयोग कर होगा:

class MyLocationsResource(ModelResource): 
    def alter_list_data_to_serialize(self, request, data): 
     data['locations'] = data['objects'] 
     del data['objects'] 
     return data 

    def alter_deserialized_list_data(self, request, data): 
     data['objects'] = data['locations'] 
     del data['locations'] 
     return data 
+0

ध्यान दें कि नया 'मेटा.collection_name' विशेषता एक ही चीज़ करता है, लेकिन यह अब के लिए [असंगत] (https://github.com/toastdriven/django-tastypie/pull/467) है। –

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

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