from rest_framework import serializers from tagulous.serializers.json import Serializer from products.models import Product from utils.tag_serializers import TagListSerializerField, TaggitSerializer, SingleTagSerializerField, SingleTag, TagList class ProductSerializer(TaggitSerializer, serializers.ModelSerializer): tags = TagListSerializerField(required=False) category = SingleTagSerializerField(required=False) # main tag category attributes = TagListSerializerField(required=False) # image = serializers.SerializerMethodField() class Meta: model = Product exclude = ['created', 'updated', 'creator'] class ProductSearchSerializer(TaggitSerializer, serializers.ModelSerializer): tags = TagListSerializerField(required=False) category = SingleTagSerializerField(required=False) # main tag category attributes = TagListSerializerField(required=False) image = serializers.SerializerMethodField() class Meta: model = Product exclude = ['created', 'updated', 'creator'] def get_image(self, instance): request = self.context.get('request') return request.build_absolute_uri(instance.image.url) class TagFilterSerializer(TaggitSerializer, serializers.ModelSerializer): tags = TagListSerializerField(required=False) class Meta: model = TagList fields = '__all__'