Как я могу оптимизировать время отклика в этом коде на python? (django)

Метод get_assets получает список активов из базы данных и для каждого элемента списка вызывает метод __build_asset_response для построения ответа в формате словаря. Однако, когда активов много, время выполнения build_asset_response очень велико. Кто-нибудь знает метод, позволяющий оптимизировать это время?

def get_assets(user, data):
    if data.get('asset_id'):
        assets = Asset.objects.filter(pk__in=data['asset_id'])
        return [__build_asset_response(asset) for asset in assets]
    assets = Asset.objects.filter(QueryHelper.filter_by_rol(user))
  
    return [__build_asset_response(asset) for asset in assets]

Это частный метод buil_asset_response:

def __build_asset_response(asset):

    asset_dict = {
        'id': asset.pk,
        'name': asset.name,
        'accessibility': manage_accessibility.build_accessibility_type_response(asset.accessibility),
        'folder': "",
        'user_id': {
            'id': asset.user.id,
            'name': str(asset.user)
        },
        'organization': {
            'id': asset.idOrganization.id,
            'name': str(asset.idOrganization),
        },
        'asset_type_id': asset.idAssetType and __build_asset_type_response(asset.idAssetType) or {},
        'file': settings.MEDIA_URL + asset.archivo.name,
        'tag_ids': [tag.name for tag in asset.tag_ids.all()],
        'lastModified': timezone.localtime(asset.last_modified_date).strftime("%Y-%m-%d %H:%M:%S"),
        'used_in_publication': asset.used_in_publication
    }
    if asset.idFolder:
        folder = manage_folder.build_folder_response(asset.idFolder)
    else:
        folder = ''
    asset_dict.update({
        'folder': folder,
    })

    return asset_dict
Вернуться на верх