From 7ef0dc6fa95ef472fdef58f40a67a44213f1b57a Mon Sep 17 00:00:00 2001 From: Egor fureunoir Gorbunov Date: Thu, 8 May 2025 17:57:23 +0300 Subject: [PATCH] Features: 1) Add `BrandProductDetailSerializer` with logo fields (small_logo, big_logo); 2) Replace `BrandDetailSerializer` with `BrandProductDetailSerializer` in `ProductDetailSerializer`; Fixes: (none); Extra: 1) Minor structural adjustments for code clarity; --- core/serializers/detail.py | 28 +++++++++++++++++++++++++++- 1 file changed, 27 insertions(+), 1 deletion(-) diff --git a/core/serializers/detail.py b/core/serializers/detail.py index 058d17f7..74e3b6d6 100644 --- a/core/serializers/detail.py +++ b/core/serializers/detail.py @@ -149,6 +149,32 @@ class BrandDetailSerializer(ModelSerializer): return None +class BrandProductDetailSerializer(ModelSerializer): + small_logo = SerializerMethodField() + big_logo = SerializerMethodField() + + class Meta: + model = Brand + fields = [ + "uuid", + "name", + "created", + "modified", + "big_logo", + "small_logo", + ] + + def get_small_logo(self, obj: Brand) -> Optional[str]: + with suppress(ValueError): + return obj.small_logo.url + return None + + def get_big_logo(self, obj: Brand) -> Optional[str]: + with suppress(ValueError): + return obj.big_logo.url + return None + + class ProductTagDetailSerializer(ModelSerializer): class Meta: model = ProductTag @@ -273,7 +299,7 @@ class PromoCodeDetailSerializer(ModelSerializer): class ProductDetailSerializer(ModelSerializer): - brand = BrandDetailSerializer() + brand = BrandProductDetailSerializer() category = CategorySimpleSerializer() tags = ProductTagDetailSerializer( many=True,