У меня есть сериализатор, который реализует класс BaseSerializer
, в котором я использую функцию to_representation
для вызова функции следующим образом:
class ItemSerializer(serializers.BaseSerializer):
def to_representation(self, instance):
ret = super().to_representation(instance)
ret['log'] = SERVICE.log(instance.id)
return ret
class Meta:
list_serializer_class = ItemListSerializer
model = models.Item
fields = '__all__'
У меня также есть сериализатор списка длятот же ItemListSerializer
, который выглядит следующим образом:
class ItemListSerializer(serializers.ListSerializer):
def create(self, validated_data):
items = [models.Item(**item) for item in validated_data]
return models.Item.objects.bulk_create(items)
Я хочу переопределить метод to_representation
в ItemSerializer
, когда я хочу получить весь список элементов.В основном я хочу избежать вызова функции для каждого элемента и вместо этого выполнить массовый вызов для всех элементов, когда список элементов запрашивается по соображениям производительности.
Есть ли хороший способ сделать это?Я следовал этим документам для создания ItemListSerializer
: https://www.django -rest-framework.org / api-guide / serializers / # customizing-listserializer-поведения , но он говорит только о переопределении методов создания и обновления.