1
resposta

Validação na views.

No curso na parte de views na hora de criar a view de busca fui feito um if que eu não entendi o que ele esta validando segue imagem em anexo.

Neste caso o que o código está verificando o item 'buscar', gostaria de entender o que ele esta validando afinal a uma variável não foi criada com o mesmo nome.

https://drive.google.com/file/d/1Mqhn0Ivfw99w8qrwuNZymPR-1W2CKFFB/view?usp=sharing

1 resposta

Oii Ramom, como você está?

Peço desculpas pela demora no retorno.

Nesta função temos duas estruturas condicionais if, a primeira estrutura condicional (if 'buscar' in request.GET) foi usada com o objetivo de verificar se a string 'buscar' está presente na requisição do tipo GET. A requisição (request) é um QueryDict, semelhante aos dicionários Python, assim estamos verificando se a chave 'buscar' está presente nesse dicionário, caso esteja, salvaremos o valor correspondente a chave 'buscar', esse valor será o texto digitado pelo usuário.

Ocorrendo na primeira parte da função buscar().

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

Na segunda estrutura condicional (if buscar:) o termo buscar está fazendo referência à função buscar. Quando usamos uma função em uma estrutura condicional mas não realizamos a instanciação (chamada) dessa função adicionando os parênteses, seu valor booleano será True. Assim, nossa validação será verdadeira, dando continuidade na busca pelas receitas e salvando o resultado na variável lista_receita.

Em resumo temos as seguintes referências.

  • if 'buscar' in request.GET: Verifica se a string 'buscar' está presente na requisição (request)
  • if buscar: Verifica se a função buscar é verdadeira.

Na aula Modularizando as views do curso Boas práticas no Django: apps, pastas e paginação, o professor realiza uma refatoração dessa parte do código, deixando-a mais simples e didática, caso queira acompanhar essa refatoração basta acessar o link da aula abaixo.

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!