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

[Dúvida] Só para ver se eu entendi.

clicando na imagem <a href="{% url 'imagem' fotografia.id %}"><!--Carrega a pagina imagem passando o valor do id como parametro-->, a função imagem da views.py é acionada pela urls.py atravez do name, a função imagem vai pegar o id da foto que foi iterada no for da pagina index, e retornar a imagem.html com um dicionario da variavel fotografia carregado com o get_object_or_404() que por sua vez faz o get da foto especificada pela pk, é isso?

2 respostas
solução!

Oi, Wallace! Tudo bem?

Sim, ao clicar na imagem, o link <a href="{% url 'imagem' fotografia.id %}"> é acionado. Aqui, {% url 'imagem' fotografia.id %} é uma tag de template do Django que gera uma URL para a view chamada 'imagem' e passa fotografia.id como argumento para essa view.

No arquivo urls.py, a rota 'imagem' é definida como path('imagem/<int:foto_id>', imagem, name='imagem') e o <int:foto_id> é um capturador de argumento que pega o id da foto da URL e passa para a view 'imagem'.

Somado a isso, na função 'imagem' em views.py, o id da foto é recebido como argumento (foto_id) e a função então usa get_object_or_404(Fotografia, pk=foto_id) para buscar a foto com esse id no banco de dados. Assim, se a foto não for encontrada, a função retorna um erro 404.

Finalmente, a função 'imagem' retorna a página 'imagem.html' com um dicionário contendo a foto encontrada. No template 'imagem.html', essa foto é acessada através da chave 'fotografia' do dicionário.

Espero ter ajudado!

Um forte abraço e bons estudos!

Caso este post tenha te ajudado, por favor, marcar como solucionado ✓

Perfeito obrigado!