Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- class ProductDetailSerializer(serializers.ModelSerializer):
- group = ProductGroupSerializer()
- product_group = serializers.SerializerMethodField()
- product_characteristic = serializers.SerializerMethodField()
- gallery = GallerySerializer(many=True)
- size_variant = ProductSizeVariantSerializer(many=True)
- color = ProductColorSerializer()
- test = serializers.SerializerMethodField()
- class Meta:
- model = Product
- fields = (
- 'id', 'name', 'slug', 'image', 'description', 'group', 'product_characteristic',
- 'size_variant', 'gallery', 'color', 'product_group', 'test'
- )
- def get_test(self, instance):
- return ProductListSerializer(instance.recommended_product.all().with_min_price(), many=True)
- def get_product_group(self, instance):
- return ProductListGroupSerializer(
- instance.group.product.all().exclude(slug=instance.slug).select_related('color').distinct(),
- many=True,
- context=self.context
- ).data
- def get_product_characteristic(self, instance):
- all_characteristics = ProductCharacteristic.objects\
- .filter(product__id=instance.id, characteristic__isnull=False, value__isnull=False)\
- .select_related('product', 'characteristic', 'value')
- return ProductCharacteristicSerializer(all_characteristics, many=True).data
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement