from rest_framework import serializers from apps.config.models import Config class ConfigSerializer(serializers.ModelSerializer): SERVICE_INSTAGRAM_URL = serializers.URLField(required=False) SERVICE_TWITTER_URL = serializers.URLField(required=False) SERVICE_FB_URL = serializers.URLField(required=False) SERVICE_YOUTUBE_URL = serializers.URLField(required=False) SERVICE_COMMISSION = serializers.IntegerField(required=False) SERVICE_DISCOUNT_MIN_AMOUNT = serializers.IntegerField(required=False) SERVICE_DISCOUNT = serializers.IntegerField(required=False) INSTAGRAM_CLIENT_ACCESS_TOKEN = serializers.CharField(required=False) INSTAGRAM_CLIENT_SECRET = serializers.CharField(required=False) INSTAGRAM_PROFILE_URL = serializers.CharField(required=False) SCHOOL_LOGO_IMAGE = serializers.SerializerMethodField() MAIN_PAGE_TOP_IMAGE = serializers.SerializerMethodField() # SCHOOL_LOGO_IMAGE = serializers.ImageField(required=False, allow_null=True) # MAIN_PAGE_TOP_IMAGE = serializers.ImageField(required=False, allow_null=True) class Meta: model = Config fields = ( 'SERVICE_INSTAGRAM_URL', 'SERVICE_TWITTER_URL', 'SERVICE_FB_URL', 'SERVICE_YOUTUBE_URL', 'SERVICE_COMMISSION', 'SERVICE_DISCOUNT_MIN_AMOUNT', 'SERVICE_DISCOUNT', 'INSTAGRAM_CLIENT_ACCESS_TOKEN', 'INSTAGRAM_CLIENT_SECRET', 'INSTAGRAM_PROFILE_URL', 'SCHOOL_LOGO_IMAGE', 'MAIN_PAGE_TOP_IMAGE', ) def get_SCHOOL_LOGO_IMAGE(self, config): request = self.context.get('request') if config.SCHOOL_LOGO_IMAGE: SCHOOL_LOGO_IMAGE_url = config.SCHOOL_LOGO_IMAGE.url return request.build_absolute_uri(SCHOOL_LOGO_IMAGE_url) else: return None def get_MAIN_PAGE_TOP_IMAGE(self, config): request = self.context.get('request') if config.MAIN_PAGE_TOP_IMAGE: MAIN_PAGE_TOP_IMAGE_url = config.MAIN_PAGE_TOP_IMAGE.url return request.build_absolute_uri(MAIN_PAGE_TOP_IMAGE_url) else: return None