Advertisement
Guest User

Untitled

a guest
Nov 18th, 2019
124
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.39 KB | None | 0 0
  1. class ProductDetailSerializer(serializers.ModelSerializer):
  2.     group = ProductGroupSerializer()
  3.     product_group = serializers.SerializerMethodField()
  4.     product_characteristic = serializers.SerializerMethodField()
  5.     gallery = GallerySerializer(many=True)
  6.     size_variant = ProductSizeVariantSerializer(many=True)
  7.     color = ProductColorSerializer()
  8.     test = serializers.SerializerMethodField()
  9.  
  10.     class Meta:
  11.         model = Product
  12.         fields = (
  13.             'id', 'name', 'slug', 'image', 'description', 'group', 'product_characteristic',
  14.             'size_variant', 'gallery', 'color', 'product_group', 'test'
  15.         )
  16.  
  17.     def get_test(self, instance):
  18.         return ProductListSerializer(instance.recommended_product.all().with_min_price(), many=True)
  19.  
  20.     def get_product_group(self, instance):
  21.         return ProductListGroupSerializer(
  22.             instance.group.product.all().exclude(slug=instance.slug).select_related('color').distinct(),
  23.             many=True,
  24.             context=self.context
  25.         ).data
  26.  
  27.     def get_product_characteristic(self, instance):
  28.         all_characteristics = ProductCharacteristic.objects\
  29.             .filter(product__id=instance.id, characteristic__isnull=False, value__isnull=False)\
  30.             .select_related('product', 'characteristic', 'value')
  31.         return ProductCharacteristicSerializer(all_characteristics, many=True).data
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement