2013-01-10 19 views
6

आप एपीआई में संबंधित फ़ील्ड कैसे शामिल करते हैं?Django Rest Framework - रिवर्स रिलेशनशिप

class Foo(models.Model): 
    name = models.CharField(...) 

class Bar(models.Model): 
    foo = models.ForeignKey(Foo) 
    description = models.CharField() 

प्रत्येक फू में बार के कुछ संबंधित हैं, जैसे छवियां या कभी भी।

मैं इन बार के फू के संसाधन में प्रदर्शन कैसे प्राप्त करूं?

साथ tastypie अपनी सरल, im Django बाकी फ्रेमवर्क के साथ यकीन नहीं ..

उत्तर

8

मैं यह काम कर रहा मिला छोड़ने! Shweeet!

बनाया serializers, दृश्य और बार वस्तु के लिए यूआरएल Django बाकी फ्रेमवर्क के त्वरित प्रारंभ डॉक्स में वर्णित के रूप में:

ठीक है यह मैं क्या किया है।

class FooSerializer(serializers.HyperlinkedModelSerializer): 
    # note the name bar should be the same than the model Bar 
    bar = serializers.ManyHyperlinkedRelatedField(
     source='bar_set', # this is the model class name (and add set, this is how you call the reverse relation of bar) 
     view_name='bar-detail' # the name of the URL, required 
    ) 

    class Meta: 
     model = Listing 

वास्तव में अपनी असली सरल, डॉक्स बस इसे अच्छी तरह से दिखाने मैं कहूंगा कि न ..

+0

यह मेरे लिए काम नहीं करता है। मुझे यह कहते हुए एक त्रुटि मिल रही है कि यूआरएल को हल नहीं किया जा सका। मैंने अपने आराम/urls.py के अंदर यूआरएल जोड़ा है और यह काम करता है। यकीन नहीं है कि मैं क्या गलत कर रहा हूँ। – sweyrick

+3

बस धन्यवाद कहना चाहता था !!!!!!! इस पर दस्तावेज खराब है। – whoisearth

3

इन दिनों आप इस बस से प्राप्त कर सकते हैं:

फिर फू Serializer में मैं ऐसा किया fields टुपल के रिवर्स रिलेशनशिप को जोड़ना।

आपके मामले में:

class FooSerializer(serializers.ModelSerializer): 
    class Meta: 
     model = Foo 
     fields = (
      'name', 
      'bar_set', 
     ) 

अब "बार" सेट अपने फू जवाब में शामिल किया जाएगा।

+0

मैं वही कर रहा हूं, नेस्टेड प्रतिक्रिया में, मान लें कि 4 बार संबंधित हैं, मुझे 4 खाली जेसन मिल रहे हैं, मुझे नहीं पता कि यह क्यों काम नहीं कर रहा है, गिनती सही ढंग से काम कर रही है – Sugam