2
respostas

buscar no views do app receitas

A minha dúvida é exatamente a mesma da Regina neste post: https://cursos.alura.com.br/forum/topico-buscar-no-views-144118

  • Por que o buscar, no segundo if, funciona sem as aspas? Foi criado um objeto dentro do escopo do primeiro if? E neste caso, com o mesmo nome do método? Obviamente o Python não se confundiu, achando que estou tentando fazer uma chamada recursiva, por exemplo... Então, por que isso? Obrigado e parabéns pelo curso!
def buscar(request):
    receitas = Receita.objects.order_by('-date_receita').filter(publicada=True)

    if 'buscar' in request.GET:
        nome_a_buscar = request.GET['buscar']

        if buscar:
            receitas = receitas.filter(nome_receita__icontains=nome_a_buscar)

    dados = {
        'receitas': receitas
    }
    return render(request, 'buscar.html', dados) 
2 respostas

O segundo buscar refere-se a requisição, de forma que você está refazendo um filtro, ou sobrescrevendo a variavel.

Na verdade, não sei se foi um erro de transcrição mas o segundo 'buscar' deveria ser 'nome_a_buscar', o primeiro 'buscar' captura o que foi escrito na requisição e salva na variável 'nome_a_buscar', o segundo if testa se algo foi escrito e aplica o filtro.