"""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', )