1
resposta

'nome_receita__icontains' is not defined

Bom dia. Poderia me ajudar com esse erro?

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 = {
            'receitas' : lista_receitas
        }

    return render(request, 'buscar.html')
1 resposta

Olá Ivan, tudo bem com você?

Peço desculpas pela demora em lhe responder.

Analisando o código apresentado, na segunda cláusula condicional if (if buscar) no momento em que é passado os parâmetros para o método tilter, temos a seguinte linha de código nome_receita__icontains==nome_a_buscar, note que é feito o uso de dois iguais (==), assim está verificando a igualdade entre os dois parâmetros, o correto seria realizar a atribuição, usando um igual (=).

Basta deixar com apenas um igual, como apresentado abaixo, salvar o arquivo e iniciar o servidor.

lista_receitas = lista_receitas.filter(nome_receita__icontains=nome_a_buscar)

Método buscar completo para comparação

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 = {
            'receitas' : lista_receitas
        }

    return render(request, 'buscar.html')

Fico à disposição em caso de dúvidas.

Abraços e bons estudos.

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!