gault-millau/apps/news/serializers/common.py
2019-08-16 15:24:26 +03:00

66 lines
1.6 KiB
Python

from rest_framework import serializers
from news import models
from location.serializers import AddressSerializer
from location.models import Address
class NewsTypeSerializer(serializers.ModelSerializer):
"""News type serializer."""
class Meta:
model = models.NewsType
fields = [
'id',
'name'
]
class NewsSerializer(serializers.ModelSerializer):
"""News serializer."""
address = AddressSerializer()
# Localized fields
title_trans = serializers.CharField()
subtitle_trans = serializers.CharField()
description_trans = serializers.CharField()
class Meta:
model = models.News
fields = [
'id',
'news_type',
'start',
'end',
'playlist',
'address',
'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'
]