gault-millau/apps/tag/serializers.py
2019-10-09 18:25:40 +03:00

60 lines
1.4 KiB
Python

"""Tag serializers."""
from rest_framework import serializers
from tag import models
from utils.serializers import TranslatedField
class TagBaseSerializer(serializers.ModelSerializer):
"""Serializer for model Tag."""
label_translated = TranslatedField()
class Meta:
"""Meta class."""
model = models.Tag
fields = [
'id',
'label',
'label_translated',
'category'
]
extra_kwargs = {
'label': {'write_only': True},
'category': {'write_only': True}
}
class TagCategoryBaseSerializer(serializers.ModelSerializer):
"""Serializer for model TagCategory."""
label_translated = TranslatedField()
country_translated = TranslatedField(source='country.name_translated')
class Meta:
"""Meta class."""
model = models.TagCategory
fields = (
'id',
'label',
'label_translated',
'country',
'country_translated',
'public',
)
extra_kwargs = {
'label': {'write_only': True},
'country': {'write_only': True},
}
class TagCategoryDetailSerializer(TagCategoryBaseSerializer):
tags = TagBaseSerializer(many=True)
class Meta(TagCategoryBaseSerializer.Meta):
"""Meta class."""
fields = TagCategoryBaseSerializer.Meta.fields + ('tags', )