2015-12-21 5 views
6

मैं धारावाहिक रूप में किसी उत्पाद की सभी छवियां प्राप्त करना चाहता हूं। मेरे मॉडल नीचे के रूप में हैं।Django Rest Framework में संबंधित मॉडल के मान प्राप्त करें?

class Product(): 
    title 
    subtitle 
    ... 
class ProductImage(): 
    product = models.ForeignKey(
    'Product', related_name='images', verbose_name=_("Product")) 
    image_path 

मेरे serializers:

class ProductImageSerializer(serializers.HyperlinkedModelSerializer): 
    class Meta: 
     model = ProductImage 
     fields = ('caption', 'display_order', 'original', 'product') 


class ProductSerializer(serializers.HyperlinkedModelSerializer): 

    images = ProductImageSerializer() 
    class Meta: 
     model = Product 
     fields = (
      'title', 'slug', 'short_description', 'description', 
      'sku', 'pk', 'images') 

मैं/API/उत्पादों पर

AttributeError इस त्रुटि हो रही है/ गॉट AttributeError जब display_order` पर `खाने के लिए मान प्राप्त करने का प्रयास serializer `ProductImageSerializer`। धारावाहिक फ़ील्ड को गलत तरीके से नामित किया जा सकता है और 'संबंधित प्रबंधक' उदाहरण पर किसी भी विशेषता या कुंजी से मेल नहीं खाता है। मूल अपवाद टेक्स्ट था: 'relatedManager' ऑब्जेक्ट में कोई विशेषता 'display_order' नहीं है।

मैं किसी विशेष उत्पाद के लिए सभी छवियां कैसे प्राप्त करूं?

उत्तर

1

आप संबंधित मॉडल उदाहरणों का एक स्रोत परिभाषित करना चाहिए और many=True सेट:

images = ProductImageSerializer(many=True, source='images.all') 
+0

अभी भी हो रही गुण त्रुटि: मैं 'का उपयोग कर related_name (चित्र)' में जानना चाहते हूँ (productimage मॉडल देख, मैं इसे बदल)। मेरी क्वेरी: 'images = ProductImageSerializer (कई = सही, स्रोत = 'product_images.all')' – Coderaemon

+0

अब प्राप्त हो रहा है: 'फ़ील्ड विकल्प एक सूची या टुपल या "__all__" होना चाहिए। समझे। – Coderaemon

+0

बिंदु यह है कि आपको एक स्रोत को परिभाषित करना है। मैं वाक्यविन्यास के बारे में गलत हो सकता है, शायद यह सिर्फ '' 'स्रोत = 'छवियों''' होना चाहिए। –