1
resposta

Otimização da busca

Percebi que seria possível otimizar a função "buscar", já que - como feita na aula - ela busca TODOS os elementos do banco de dados ANTES de fazer a filtragem pelo termo inserido pelo usuário, o que torna a função muito custosa em termos de processamento e acesso ao banco de dados. Com isso em mente, realizei uma otimização desta função, como segue, garantindo que ela faça retorne do banco de dados apenas os termos filtrados.

def buscar(request):
    busca = request.GET.get('buscar', '').strip()

    if busca:
        fotografias = Fotografia.objects.filter(
            publicada=True,
            nome__icontains=busca
        ).order_by('-data_fotografia')
    else:
        fotografias = Fotografia.objects.filter(
            publicada=True
        ).order_by('-data_fotografia')

    return render(request, 'galeria/buscar.html', {"cards": fotografias})
1 resposta

Olá Bruno, tudo bem?

Você fez um ótimo trabalho otimizando a função de busca. Parabéns! 🎉

Obrigada por compartilhar essa dica conosco! Sua contribuição é fundamental para o crescimento da nossa comunidade na Alura. Continue assim, empenhado, e não hesite em retornar ao fórum sempre que tiver dúvidas ou quiser compartilhar mais insights.

Abraços e bons estudos!

Alura Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!