목차

setup_eager_loading

class ProductPriceSerializer(serializers.ModelSerializer):
    product = ProductSerializer(read_only=True)

    @staticmethod
    def setup_eager_loading(queryset):
        queryset = queryset.prefetch_related("product")
        return queryset

    class Meta:
        model = ProductPrice
        fields = '__all__'

class ProductPriceSerializer(serializers.ModelSerializer):
    product = ProductSerializer(read_only=True)

    data_type = serializers.SerializerMethodField()
    
    @classmethod
    def get_data_type(cls, obj):
        if hasattr(obj, 'price_before') and obj.price_before:
            return 'price'
        else:
            return 'new'

    @staticmethod
    def setup_eager_loading(queryset):
        queryset = queryset.prefetch_related("product")
        return queryset

    class Meta:
        model = ProductPrice
        fields = '__all__'

출처


관련 문서