60 lines
1.4 KiB
Python
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', )
|