1
resposta

[Dúvida] Problemas na Definição da Foto

Olá, estou travado na aula "01 Exibindo Foto" no módulo "Integração de modelos no Django: Filtros, buscas e admin"

Nesta aula, o professor faz uma lógica no index.html para verificar se existe uma foto salva no banco de dados, se existir, exibe a foto no card referenciando a receita correta ... Estou com problemas justamente em relação ao caminho que o sistema está buscando essa foto, ele não está encontrando quando utilizo o comando {{ receita.foto_receita.url }}, eu fiz o seguinte teste:

                    {% if receita.foto_receita == null %}
                        <img src="{% static 'img/bg-img/foto_receita.png' %}" alt=""> teste1
                    {% else %}
                        <img src="{% static 'img/bg-img/foto_receita.png' %}" alt=""> teste2
                    {% endif %}

Como é possível ver, o sistema consegue reconhecer que existe uma foto salva, e mostra "teste2" logo abaixo de onde ficaria a foto:

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

Porém, ao utilizar o comando para mostrar a foto correta:

                    {% if receita.foto_receita == null %}
                        <img src="{% static 'img/bg-img/foto_receita.png' %}" alt=""> teste1
                    {% else %}
                        <img src="{{ receita.foto_receita.url }}" alt=""> teste2
                    {% endif %}

Recebo um erro:

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

Eu imagino que o problema esteja na rota da foto, mas tudo que tentei não deu certo, o projeto segue estruturado da seguinte forma:

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

Se alguém tiver uma sugestão, agradeço!

1 resposta

Olá Matheus, como você está?

Peço desculpas pela demora em obter um retorno.

Para realizar a correção do erro, the 'foto_receita' attribute has no file associeted with it, basta modificar a estrutura condicional presente no arquivo index.html que verifica ser a uma foto para aquela receita. No código enviado está ocorrendo a verificação se é igual a null o correto será verificar se é igual a '' (string vazia), da seguinte forma {% if receita.foto_receita == '' %}

Após a mudança, o código python inserido no HTML deve ficar como apresendado abaixo:

{% if receita.foto_receita == ''  %}
    <img src="{% static 'img/bg-img/foto_receita.png' %}" alt="">
{% else %}
    <img src="{{ receita.foto_receita.url}}" alt="">
{% endif %}

Após as mudanças, salve o arquivo index.html, reinicie a aplicação e acesse a página inicial.

Espero ter lhe ajudado. Em caso de dúvidas estou à disposição.

Não hesite em voltar ao fórum para continuar aprendendo e interagindo com a comunidade.

Abraços e bons estudos!

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