2012-05-08 34 views
5

वहाँ एक ही बात को पहले से ही के लिए पूछ सवाल की जोड़ी हैं क्रमानुसार। लेकिन वे 2010 से हैं, और इससे मुझे बहुत मदद नहीं मिली। तो मुझे लगता है कि यह 2010 के बाद से इस मोर्चे पर कुछ अपडेट हो सकता है?Django विदेशी कुंजी वस्तुओं

Google पर मुझे यह link मिला, जो natural keys का उपयोग समझाता है। हालांकि मेरी समस्या django.contrib.auth.models.User से विदेशी वस्तुओं को प्राप्त करने की चिंता करती है, इसलिए इससे मदद नहीं मिलती है।

मेरी समस्या निम्नानुसार है। मैं QuerySet को क्रमबद्ध करना चाहता हूं इसलिए मुझे विदेशी कुंजी ऑब्जेक्ट भी मिलते हैं, क्योंकि मैं इसे क्लाइंट के लिए JSON के रूप में पास करना चाहता हूं। django.core से धारावाहिक ऐसा नहीं करता है। तो मेरे मामले में बस समस्या के लिए मैंने मॉडल में एक और क्षेत्र जोड़ा था जिसमें मुझे विदेशी वस्तु से मूल्य चाहिए। लेकिन हालांकि यह अनावश्यक डेटा पेश करते हैं।

मेरा उदाहरण मॉडल इसमें username है जो मैं चाहता हूं कि यदि संभव हो तो निकालें, और इसके बजाय इसे विदेशी कुंजी से प्राप्त करें।

user = models.ForeignKey(User) 
    username = models.CharField(max_length=100, null=False) 

उत्तर

6

इसके आसपास एक संभावित तरीका एक क्वेरीसेट के रिटर्न के आधार पर अपनी खुद की शब्दकोश वस्तु बनाना है। आप ऐसा कुछ करेंगे:

queryset = Model.objects.all() 
list = [] #create list 
for row in queryset: #populate list 
    list.append({'title':row.title, 'body': row.body, 'name': row.user.username}) 
recipe_list_json = json.dumps(list) #dump list as JSON 
return HttpResponse(recipe_list_json, 'application/javascript') 

आपको इसके लिए जेसन आयात करने की आवश्यकता है।

import json 
+0

हम्म, मैंने इसके बारे में नहीं सोचा था। टिप – starcorn

+1

के लिए धन्यवाद कोई समस्या नहीं है। Django के serializer निश्चित रूप से थोड़ा सीमित लगता है। आप इसका उपयोग करने का भी प्रयास कर सकते हैं: http://code.google.com/p/wadofstuff/wiki/DjangoFullSerializers – bento

1

आप इस्तेमाल कर सकते हैं Django बाकी चौखटे 'serializers

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