from rest_framework import serializers from collection import models from gallery import models as gallery_models from location import models as location_models class CollectionSerializer(serializers.ModelSerializer): """Collection serializer""" # RESPONSE image_url = serializers.ImageField(source='image.image') # COMMON block_size = serializers.JSONField() is_publish = serializers.BooleanField() on_top = serializers.BooleanField() # REQUEST start = serializers.DateTimeField(write_only=True) end = serializers.DateTimeField(write_only=True) filters = serializers.JSONField(write_only=True) selectors = serializers.JSONField(write_only=True) targets = serializers.JSONField(write_only=True) country = serializers.PrimaryKeyRelatedField( queryset=location_models.Country.objects.all(), write_only=True) image = serializers.PrimaryKeyRelatedField( queryset=gallery_models.Image.objects.all(), write_only=True) class Meta: model = models.Collection fields = [ 'id', 'name', 'start', 'end', 'image', 'image_url', 'is_publish', 'on_top', 'filters', 'selectors', 'targets', 'country', 'block_size', ] class CollectionItemSerializer(serializers.ModelSerializer): """CollectionItem serializer""" class Meta: model = models.CollectionItem fields = [ 'id', 'collection', 'item_type', 'item_ids' ] class GuideSerializer(serializers.ModelSerializer): """Guide serializer""" class Meta: model = models.Guide fields = [ 'id', 'name', 'start', 'end', 'parent', 'advertorials', 'collection' ]