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:
parent
ce5c475b71
commit
7ef0dc6fa9
1 changed files with 27 additions and 1 deletions
|
|
@ -149,6 +149,32 @@ class BrandDetailSerializer(ModelSerializer):
|
||||||
return None
|
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 ProductTagDetailSerializer(ModelSerializer):
|
||||||
class Meta:
|
class Meta:
|
||||||
model = ProductTag
|
model = ProductTag
|
||||||
|
|
@ -273,7 +299,7 @@ class PromoCodeDetailSerializer(ModelSerializer):
|
||||||
|
|
||||||
|
|
||||||
class ProductDetailSerializer(ModelSerializer):
|
class ProductDetailSerializer(ModelSerializer):
|
||||||
brand = BrandDetailSerializer()
|
brand = BrandProductDetailSerializer()
|
||||||
category = CategorySimpleSerializer()
|
category = CategorySimpleSerializer()
|
||||||
tags = ProductTagDetailSerializer(
|
tags = ProductTagDetailSerializer(
|
||||||
many=True,
|
many=True,
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue