Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Função render e dict.items()

Olá!

Gostaria de entender melhor o funcionamento do dict 'dados' como terceiro parâmetro do render(). O que a função render() passa para o template seria o equivalente a dados['nome_das_receitas']?

Digo isso porque no código:

receitas = {
        1:'Lasanha',
        2:'Sopa de Legumes',
        3:'Sorvete'
    }

dados = {
        'nome_das_receitas':receitas
        }

for chave, valor in dados.items():
    print(valor)

O retorno é 1 item:

{1: 'Lasanha', 2: 'Sopa de Legumes', 3: 'Sorvete'}

Enquanto o código:

for chave, valor in dados['nome_das_receitas'].items():
    print(valor)

Retorna 3 itens:

Lasanha
Sopa de Legumes
Sorvete

É por aí mesmo?

2 respostas
solução!

Grande Danilo! Como você está? Espero que esteja bem =)

É por aí sim =)

A render receberá um dicionário como contexto e irá tentar nos retornar o valor da chave que tentamos acessar. E há problemas em passarmos mais de uma chave, por exemplo:

dados = {
    'nome_das_receitas': receitas,
    'nome_dos_ingredientes': ingredientes,
    'imagens': imagens
}

Em nosso template, o django irá verificar se aquela chave que estamos tentando acessar existe(através do get) e caso não exista, ele retornará None.

Tudo isso acontece de forma implícita pelo django, mas é muito bom que você tenha se preocupado em relação as como as coisas funcionem internamente.

Qualquer coisa estou por aqui, a gente vai conversando.

Abraços e bons estudos!

Oi!

Obrigado pelo retorno! Eu to achando o Django muito interessante. Eu não sou programador (sou contador =P), e o framework me faz pensar que até eu conseguiria desenvolver aplicativos com uma coisa assim...

Até mais!