예제 #1
0
class EnsembleSerializer(ModelSerializer):
    logo = fields.SerializerMethodField()
    vk_link = fields.URLField(allow_null=True)
    instagram_link = fields.URLField(allow_null=True)

    def get_logo(self, obj):
        return obj.logo.url

    class Meta:
        model = models.Ensemble
        fields = '__all__'
예제 #2
0
class ActivitySerializer(serializers.ModelSerializer):
    title = fields.CharField(source="name")
    start = fields.DateTimeField(read_only=True)
    end = fields.DateTimeField(read_only=True)
    url = fields.URLField(source="get_absolute_url", read_only=True)
    textColor = fields.SerializerMethodField("get_text_color")

    class Meta:
        model = Activity
        fields = (
            "title",
            "type",
            "start",
            "end",
            "location",
            "description",
            "url",
            "fb_event_id",
            "textColor",
        )

    def get_text_color(self, obj):
        if obj.start_date == date.today():
            return "#FFFFFF"
        return ""
예제 #3
0
    def test_basic_mapping(self, assert_dict_equals):
        """
        Confirm that the serializer can still handle models w/
        standard Django fields
        """
        class TestSerializer(DjongoModelSerializer):
            class Meta:
                model = GenericModel
                fields = '__all__'

        expected_dict = {
            'id':
            drf_fields.IntegerField(label='ID', read_only=True),
            'big_int':
            drf_fields.IntegerField(max_value=9223372036854775807,
                                    min_value=-9223372036854775808),
            'bool':
            drf_fields.BooleanField(),
            'char':
            drf_fields.CharField(max_length=20),
            'comma_int':
            ("CharField(validators=[<django.core.validators.RegexValidator "
             "object>, <django.core.validators.MaxLengthValidator object>])"),
            'date':
            drf_fields.DateField(),
            'date_time':
            drf_fields.DateTimeField(),
            'decimal':
            drf_fields.DecimalField(decimal_places=5, max_digits=10),
            'email':
            drf_fields.EmailField(max_length=254),
            'float':
            drf_fields.FloatField(),
            'integer':
            drf_fields.IntegerField(max_value=2147483647,
                                    min_value=-2147483648),
            'null_bool':
            drf_fields.NullBooleanField(required=False),
            'pos_int':
            drf_fields.IntegerField(max_value=2147483647, min_value=0),
            'pos_small_int':
            drf_fields.IntegerField(max_value=32767, min_value=0),
            'slug':
            drf_fields.SlugField(allow_unicode=False, max_length=50),
            'small_int':
            drf_fields.IntegerField(max_value=32767, min_value=-32768),
            'text':
            "CharField(style={'base_template': 'textarea.html'})",
            'time':
            drf_fields.TimeField(),
            'url':
            drf_fields.URLField(max_length=200),
            'ip':
            drf_fields.IPAddressField(),
            'uuid':
            "ModelField(model_field=<django.db.models.fields.UUIDField: uuid>)",
        }

        assert_dict_equals(TestSerializer().get_fields(), expected_dict)
예제 #4
0
class ImageSerializer(Serializer):
    pk = fields.IntegerField()
    name = fields.CharField()
    url = fields.URLField()
    web_url = fields.ImageField()
    # image_thumbnail = fields.ImageField()
    variant = fields.CharField()
    main_image = fields.BooleanField()
예제 #5
0
class UserProfileSerializer(Serializer):
    avatar = fields.URLField()
    zip_code = fields.IntegerField()

    def update(self, instance, validated_data):
        for key, value in validated_data.items():
            setattr(instance, key, value)
        instance.save()
예제 #6
0
class RecipeSerializer(serializers.ModelSerializer):
    steps = StepSerializer(many=True, read_only=True)
    ingredients = RecipeIngredientSerializer(many=True, read_only=True)
    url = fields.URLField(source='get_absolute_url', read_only=True)

    class Meta:
        model = Recipe
        fields = ('id', 'name', 'prepare_time', 'cook_time', 'portion', 'comment', 'steps', 'ingredients','url')
        depth = 1
예제 #7
0
class TopicSerializer(serializers.ModelSerializer):
    counselling_topic = fields.URLField(source='counselling_topic.file.url')

    class Meta:
        model = models.Topic
        fields = (
            'id',
            'title',
            'introduction',
            'counselling_topic',
            'custom_url',
        )
예제 #8
0
class DynamicSearchAd(Ad):
    """
    Dynamically generated search ads based on the content
    of a web site.
    """
    # All fields are filled dynamically.
    # Simple variation of base class 'Ad'.
    ad_type = StringField(default='DynamicSearchAd')
    # reference - DRF field
    url = fields.URLField(source='get_absolute_url', read_only=False)

    def get_absolute_url(self):
        return "/mediacontent/ads/dynamicsearchads/%i/" % self.id
예제 #9
0
class VodSerializer(serializers.Serializer):
    """A serializer to extract from a TwitchVod model instance"""
    channel_name = fields.CharField(source="twitch_channel_name")
    url = fields.URLField()
    game_date = TimestampField(precision=1)
    game_type = fields.CharField()
    rank = fields.IntegerField()
    legend_rank = fields.IntegerField(allow_null=True)
    friendly_player_archetype_id = fields.IntegerField(allow_null=True)
    opposing_player_class = fields.CharField()
    opposing_player_archetype_id = fields.IntegerField(allow_null=True)
    won = fields.BooleanField()
    went_first = fields.BooleanField()
    game_length_seconds = fields.IntegerField()
    replay_shortid = fields.CharField()
예제 #10
0
class ProductAd(Ad):
    """
    A product ad based on product data
    of a Shopping campaign's associated Merchant Center
    account.
    """
    # Promotional line for this ad.
    # This text will be displayed in addition to the products.
    promotionLine = StringField()
    ad_type = StringField(default='ProductAd')

    # reference - DRF field
    url = fields.URLField(source='get_absolute_url', read_only=False)

    def get_absolute_url(self):
        return "/mediacontent/ads/productads/%i/" % self.id
예제 #11
0
class ActivitySerializer(serializers.ModelSerializer):
    title = fields.CharField(source='name')
    start = fields.DateTimeField(read_only=True)
    end = fields.DateTimeField(read_only=True)
    url = fields.URLField(source='get_absolute_url', read_only=True)
    textColor = fields.SerializerMethodField('get_text_color')

    class Meta:
        model = Activity
        fields = ('title', 'type', 'start', 'end', 'location', 'description',
                  'url', 'fb_event_id', 'textColor')

    def get_text_color(self, obj):
        if obj.start_date == date.today():
            return '#FFFFFF'
        return ''
예제 #12
0
class Ad(Document):
    """
    Advertisement impression on Users mobile device.
    Represents the base class for possible advertisement
    impression types.
    """
    url = StringField(required=False)
    display_url = StringField(required=False)

    # TBD (Sonu): Collection of product urls
    final_urls = StringField(required=False)
    mobile_urls = StringField(required=False)
    app_urls = StringField(required=False)

    # Customer trusted tracking
    thirdparty_tracking_url = StringField(required=False)

    # AdWise tracking
    adwise_tracking_url = StringField(required=False)

    # Location tag
    # TBD: Make tags very generic by nature.
    # For example, tags should be search'able- location,
    # genre, keywords etc.
    ad_location_tag = GeoPointField(required=False)

    # Meta
    ad_type = StringField(required=False)
    custom_parameters = DictField(required=False)
    device_preference = IntegerField(required=False)

    # Campaign this Ad refers to.
    campaign = ReferenceField('Campaign', required=False)
    # List of extension
    offerex = ListField(ReferenceField('OfferExtension'), required=False)
    socialex = ListField(ReferenceField('SocialExtension'), required=False)
    # reference - DRF field
    url = fields.URLField(source='get_absolute_url', read_only=False)

    # meta
    meta = {'allow_inheritance': True}

    class Meta:
        abstract = True

    def get_absolute_url(self):
        return "/mediacontent/ads/%i/" % self.id
예제 #13
0
class TextAd(Ad):
    """
    The standard type of Ad.
    Includes a link to your website and a description
    or promotion of your product or service.
    """

    headline = StringField(max_length=2048)
    description1 = StringField()
    description2 = StringField()

    ad_type = StringField(default='TextAd')
    # reference - DRF field
    url = fields.URLField(source='get_absolute_url', read_only=False)

    def get_absolute_url(self):
        return "/mediacontent/ads/textads/%i/" % self.id
예제 #14
0
class IDFieldSerializer(serializers.Serializer):
    title = fields.SerializerMethodField('obj_title')
    url = fields.URLField(source='get_absolute_url', read_only=True)

    def obj_title(self, obj):
        return html_parser.unescape(unicode(obj))
예제 #15
0
class CigarSerializer(serializers.ModelSerializer):
    url = fields.URLField(source='get_absolute_url', read_only=True)

    class Meta:
        model = models.Cigar
예제 #16
0
class CigarSerializer(serializers.ModelSerializer):
    manufacturer_id = fields.WritableField()
    url = fields.URLField(source='get_absolute_url', read_only=True)

    class Meta:
        model = models.Cigar