from rest_framework import serializers from location.models import Address from location.serializers import AddressSerializer from news import models class NewsTypeSerializer(serializers.ModelSerializer): """News type serializer.""" class Meta: model = models.NewsType fields = [ 'id', 'name' ] class NewsLocalizationMixinSerializer(serializers.ModelSerializer): """Serializer for localized fields""" # Localized fields title_trans = serializers.CharField(read_only=True) subtitle_trans = serializers.CharField(read_only=True) description_trans = serializers.CharField(read_only=True) class NewsSerializer(NewsLocalizationMixinSerializer): """News serializer.""" address = AddressSerializer() class Meta: model = models.News fields = [ 'id', 'news_type', 'start', 'end', 'playlist', 'address', 'is_highlighted', 'image', # Localized fields 'title_trans', 'subtitle_trans', 'description_trans', ] class NewsCreateUpdateSerializer(NewsSerializer): """News update serializer.""" title = serializers.JSONField() subtitle = serializers.JSONField() description = serializers.JSONField() news_type = serializers.PrimaryKeyRelatedField( queryset=models.NewsType.objects.all(), write_only=True) address = serializers.PrimaryKeyRelatedField( queryset=Address.objects.all(), write_only=True) class Meta: model = models.News read_only_fields = [ 'id' ] fields = [ 'id', 'news_type', 'title', 'subtitle', 'description', 'start', 'end', 'playlist', 'address' ]