1
resposta

Dúvida sobre o código utilizado na view buscar

Na view buscar, temos o seguinte código:

def buscar(request):
    lista_receitas = Receita.objects.order_by('-data_receita').filter(publicada=True)

    if 'buscar' in request.GET:
        nome_a_buscar = request.GET['buscar']
        if buscar:
            lista_receitas = lista_receitas.filter(nome_receita__icontains=nome_a_buscar)

    dados = {
        'receita': lista_receitas
    }

    return render(request, 'buscar.html', dados)

Não entendi o porque do if buscar, sendo que essa variável não existe. Fazendo isso, entendo que o valor de buscar está representando na verdade um referência para o nome do método, o que sempre irá retornar True. Nesse caso o correto não seria utilizar if nome_a_buscar? Ou seja, se o parâmetro 'buscar' da url tiver um valor, aí sim realizar o filter.

Obrigado

1 resposta

Oii Luciano, como você está? Espero que esteja bem ^-^

A ideia deste trecho é fazer com que entre na condição do if apenas se houver valor na caixa de pesquisa. Se enviarmos uma pesquisa com o valor em branco, não é necessário entrar nesta condição. Partindo deste princípio, você está totalmente correto no que disse, houve um equívoco nosso. O correto é:

if nome_a_buscar

Da forma como estava, o código pegava como referência a própria função buscar.

A equipe já realizou a correção na transcrição, obrigada por nos informar.

Abraços e bons estudos!

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software