open:setup-eager-loading

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__'

  • open/setup-eager-loading.txt
  • 마지막으로 수정됨: 2021/01/26 00:45
  • 저자 127.0.0.1