2016-04-08 7 views
-1

こんにちは、私は次の内容のジャンゴモデルを持っていると私はそれをシリアル化しよう:直列化後のdjango-rest-frameworkで入れ子にされた多対多の関係を直列化するには?

class Product(models.Model): 
    recommended = models.ManyToManyField('self') 

私はJSONを以下の取得:この後

"recommended": [ 
    2, 
    3, 
    1, 
    38, 
    39, 
    40, 
], 

を、私はテンプレートでそれを設定してみてください:

<div class="catalog-item" ng-repeat="recommended in product.recommended"> 
        <div class="item-img"> 
         <a href=""><img src="{{recommended.picture.external_img_url}}" alt=""></a> 
        </div> 
        <a href="#" class="item-title">{{ recommended.title }}</a> 
        <div class="item-price"> 
         <div class="price-old">{{ recommended.oldprice }}</div> 
         <b>{{ recommended.price }}</b> 
        </div> 
        </div> 
       </div> 

マイプロダクトシリアライザクラス:

class ProductSerializer(serializers.ModelSerializer): 

    picture = ImageSerializer(read_only=True) 
    vendor = VendorSerializer() 

    class Meta: 
      model = Product 

      fields = (
       'name', 'external_url', 'category', 'description', 'price', 'old_price', 'discount', 'discount_percent', 
       'popularity', 'order', 'click_count', 'redirect_count', 'visible', 'colors', 'sizes', 'currencies', 
       'picture', 'country_of_origin', 'manufacturer_warranty', 'vendor','recommended','id') 

私のページには何も表示されません。 plsは私を助けて、私はそれ自身が、この瞬間が実際に私たちのシリアライザクラスに、マニュアルに記載されて答えるの深さの設定 イッツを追加する必要があり、それを

+0

あなたに役立つ情報が不十分です – dkarchmer

答えて

0

を修正する方法を何のアイデアを持っていませんが次のようになります。

class ProductSerializer(serializers.ModelSerializer): 

picture = ImageSerializer(read_only=True) 
vendor = VendorSerializer() 

class Meta: 
     model = Product 

     fields = (
      'name', 'external_url', 'category', 'description', 'price', 'old_price', 'discount', 'discount_percent', 
      'popularity', 'order', 'click_count', 'redirect_count', 'visible', 'colors', 'sizes', 'currencies', 
      'picture', 'country_of_origin', 'manufacturer_warranty', 'vendor','recommended','id') 

     depth = 2