59 lines
1.7 KiB
Python
59 lines
1.7 KiB
Python
"""Product app serializers."""
|
|
from rest_framework import serializers
|
|
from utils.serializers import TranslatedField
|
|
from product.models import Product, ProductSubType, ProductType
|
|
from location.serializers import WineRegionBaseSerializer
|
|
|
|
|
|
class ProductSubTypeBaseSerializer(serializers.ModelSerializer):
|
|
"""ProductSubType base serializer"""
|
|
name_translated = TranslatedField()
|
|
index_name_display = serializers.CharField(source='get_index_name_display')
|
|
|
|
class Meta:
|
|
model = ProductSubType
|
|
fields = [
|
|
'id',
|
|
'name_translated',
|
|
'index_name_display',
|
|
]
|
|
|
|
|
|
class ProductTypeBaseSerializer(serializers.ModelSerializer):
|
|
"""ProductType base serializer"""
|
|
name_translated = TranslatedField()
|
|
index_name_display = serializers.CharField(source='get_index_name_display')
|
|
|
|
class Meta:
|
|
model = ProductType
|
|
fields = [
|
|
'id',
|
|
'name_translated',
|
|
'index_name_display',
|
|
]
|
|
|
|
|
|
class ProductBaseSerializer(serializers.ModelSerializer):
|
|
"""Product base serializer."""
|
|
name_translated = TranslatedField()
|
|
description_translated = TranslatedField()
|
|
category_display = serializers.CharField(source='get_category_display')
|
|
product_type = ProductTypeBaseSerializer()
|
|
subtypes = ProductSubTypeBaseSerializer(many=True)
|
|
wine_region = WineRegionBaseSerializer(allow_null=True)
|
|
|
|
class Meta:
|
|
"""Meta class."""
|
|
model = Product
|
|
fields = [
|
|
'id',
|
|
'name_translated',
|
|
'category_display',
|
|
'description_translated',
|
|
'available',
|
|
'product_type',
|
|
'subtypes',
|
|
'public_mark',
|
|
'wine_region',
|
|
]
|