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;
This commit is contained in:
Egor Pavlovich Gorbunov 2025-05-08 17:57:23 +03:00
parent ce5c475b71
commit 7ef0dc6fa9

View file

@ -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,