【问题标题】:How to serialize nested many to many relation in django-rest-framework?如何在 django-rest-framework 中序列化嵌套的多对多关系?
【发布时间】:2016-07-30 07:35:53
【问题描述】:

您好,我有以下内容的 django 模型,我尝试对其进行序列化:

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')

我的页面什么也没有。请帮助我,我不知道如何解决它

【问题讨论】:

  • 没有足够的信息来帮助你

标签: python angularjs json django django-rest-framework


【解决方案1】:

我自己回答,这个时刻其实文档里有描述,只是给我们的序列化器类需要添加深度设置 它看起来像这样:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-06-12
    • 1970-01-01
    • 2018-02-17
    • 2017-03-12
    • 2015-02-27
    • 2015-03-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多