gault-millau/apps/collection/serializers/common.py

63 lines
1.6 KiB
Python

from rest_framework import serializers
from collection import models
from location import models as location_models
from utils.serializers import TranslatedField
class CollectionBaseSerializer(serializers.ModelSerializer):
"""Collection base serializer"""
name_translated = TranslatedField()
description_translated = TranslatedField()
class Meta:
model = models.Collection
fields = [
'id',
'name_translated',
'description_translated',
'image_url',
'slug',
]
class CollectionSerializer(CollectionBaseSerializer):
"""Collection serializer"""
# COMMON
block_size = serializers.JSONField()
is_publish = serializers.BooleanField()
on_top = serializers.BooleanField()
slug = serializers.SlugField(allow_blank=False, required=True, max_length=50)
# REQUEST
start = serializers.DateTimeField(write_only=True)
end = serializers.DateTimeField(write_only=True)
country = serializers.PrimaryKeyRelatedField(
queryset=location_models.Country.objects.all(),
write_only=True)
class Meta(CollectionBaseSerializer.Meta):
fields = CollectionBaseSerializer.Meta.fields + [
'start',
'end',
'is_publish',
'on_top',
'country',
'block_size',
]
class GuideSerializer(serializers.ModelSerializer):
"""Guide serializer"""
class Meta:
model = models.Guide
fields = [
'id',
'name',
'start',
'end',
'parent',
'advertorials',
'collection'
]