Как сериализовать вложенное поле в модели django?

Привет, у меня есть модель со следующим содержимым(многие поля опущены за ненадобностью):

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

После сериализации модели получаю следующий json для указанного вложенного many ti many поля
"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>

В общем ничего не выходит, выводится количество предметов, но содержимого нет
  • Вопрос задан
  • 431 просмотр
Решения вопроса 1
@walkaway Автор вопроса
В общем я решил это сам, на самом деле в доке по DRF всё написано, решается добавлением в сериализуемый класс параметра "depth"

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
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы