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

Não consigo carregar mimha imagem

minha imagem não é carregada na pagina quando eu coloco, da esse erro ( The 'foto_receita' attribute has no file associated with it. ) e mesmo eu mandando para Receita com "R" a imagem não é carregada. meu index.html:

{% extends 'base.html' %}
{% load static %}
{% block content %}
    <!-- Preloader -->
    <div id="preloader">
        <i class="circle-preloader"></i>
        <img src="{% static 'img/core-img/pizza.png' %}" alt="">
    </div>

    <!-- Search Wrapper -->
    <div class="search-wrapper">
        <!-- Close Btn -->
        <div class="close-btn"><i class="fa fa-times" aria-hidden="true"></i></div>

        <div class="container">
            <div class="row">
                <div class="col-12">
                    <form action="#" method="post">
                        <input type="search" name="search" placeholder="O que está procurando...">
                        <button type="submit"><i class="fa fa-search" aria-hidden="true"></i></button>
                    </form>
                </div>
            </div>
        </div>
    </div>

    {% include 'partials/menu.html' %}

    <!-- ##### Best Receipe Area Start ##### -->
    <section class="best-receipe-area">
        <div class="container">
            <div class="row">
                {% if receitas %}
                {% for receita in receitas %}
                <!-- Single Best Receipe Area -->
                <div class="col-12 col-sm-6 col-lg-4">
                    <div class="single-best-receipe-area mb-30">
                        {% if Receita.foto_receita == null %}
                            <img src="{% static 'img/bg-img/foto_receita.png' %}" alt="">
                        {% else %}
                            <img src="{{ Receita.foto_receita.url }}" alt="">
                        {% endif %}    
                            <div class="receipe-content">
                            <a href="{% url 'receita' receita.id %}">
                                <h5>{{ receita.nome_receita }}</h5>
                            </a>
                        </div>
                    </div>
                </div>
                {% endfor %}
                {% else %}
                {% endif %}
            </div>
        </div>
    </section>
    <!-- ##### Best Receipe Area End ##### -->

    {% include 'partials/footer.html' %}
{% endblock %}

meu models:

from django.db import models
from datetime import datetime
from pessoas.models import Pessoas

class Receita(models.Model):
    pessoa = models.ForeignKey(Pessoas, on_delete=models.CASCADE)
    nome_receita = models.CharField(max_length=300)
    ingredientes = models.TextField()
    modo_preparo = models.TextField()
    tempo_preparo = models.IntegerField()
    rendimento = models.CharField(max_length=100)
    categoria = models.CharField(max_length=100)
    date_receita = models.DateTimeField(default=datetime.now, blank=True)
    foto_receita = models.ImageField(upload_to='foto/%d/%m/%y', blank=True)
    publicada = models.BooleanField(default=False)


8 respostas

Fala Pedro, como vai?

Obrigado por compartilhar seu código. Pode por gentileza compartilhar o código da sua view e da urls.py?

Fico no aguardo e conte sempre com a Alura.

: )

view:

from django.shortcuts import render, get_object_or_404
from .models import Receita

def index(request):
    receitas = Receita.objects.order_by('-date_receita').filter(publicada=True)

    dados = {
        'receitas' : receitas
    }
    return render(request, 'index.html', dados)

def receita(request, receita_id):
    receita = get_object_or_404(Receita, pk=receita_id)

    receita_a_exibir = {
        'receita' : receita
    }

    return render(request, 'receita.html', receita_a_exibir)

urls.py:

from django.urls import path

from . import views

urlpatterns = [
    path('', views.index, name='index'),
    path('<int:receita_id>', views.receita, name='receita')
]

Fala Pedro,

Obrigado por compartilhar o seu código. Faz o seguinte teste por gentileza:

  • Deixa o r minusculo mesmo, assim como na sua view e faz um novo teste incluindo uma nova receita e uma nova imagem:
<img src="{{ receita.foto_receita.url }}" alt="">
  • A imagem default das receitas sem foto, eram exibidas?

Quando eu coloco todos os "r" em minúsculo a pag não carrega dá o erro que te informei.

quando eu coloco só o "r" do -> if <- ela carrega, porém eu posso criar uma nova receita e mesmo assim não funciona.

Preciso de ajudar por favor.

{% extends 'base.html' %}
{% load static %}
{% block content %}
    <!-- Preloader -->
    <div id="preloader">
        <i class="circle-preloader"></i>
        <img src="{% static 'img/core-img/pizza.png' %}" alt="">
    </div>

    <!-- Search Wrapper -->
    <div class="search-wrapper">
        <!-- Close Btn -->
        <div class="close-btn"><i class="fa fa-times" aria-hidden="true"></i></div>

        <div class="container">
            <div class="row">
                <div class="col-12">
                    <form action="#" method="post">
                        <input type="search" name="search" placeholder="O que está procurando...">
                        <button type="submit"><i class="fa fa-search" aria-hidden="true"></i></button>
                    </form>
                </div>
            </div>
        </div>
    </div>

    {% include 'partials/menu.html' %}

    <!-- ##### Best Receipe Area Start ##### -->
    <section class="best-receipe-area">
        <div class="container">
            <div class="row">
                {% if receitas %}
                {% for receita in receitas %}
                <!-- Single Best Receipe Area -->
                <div class="col-12 col-sm-6 col-lg-4">
                    <div class="single-best-receipe-area mb-30">
                        {% if Receita.foto_receita == null %}
                            <img src="{% static 'img/bg-img/foto_receita.png' %}" alt="">
                        {% else %}
                            <img src="{{ receita.foto_receita.url }}" alt="">
                        {% endif %}    
                            <div class="receipe-content">
                            <a href="{% url 'receita' receita.id %}">
                                <h5>{{ receita.nome_receita }}</h5>
                            </a>
                        </div>
                    </div>
                </div>
                {% endfor %}
                {% else %}
                {% endif %}
            </div>
        </div>
    </section>
    <!-- ##### Best Receipe Area End ##### -->

    {% include 'partials/footer.html' %}
{% endblock %}
from django.db import models
from datetime import datetime
from pessoas.models import Pessoas

class Receita(models.Model):
    pessoa = models.ForeignKey(Pessoas, on_delete=models.CASCADE)
    nome_receita = models.CharField(max_length=300)
    ingredientes = models.TextField()
    modo_preparo = models.TextField()
    tempo_preparo = models.IntegerField()
    rendimento = models.CharField(max_length=100)
    categoria = models.CharField(max_length=100)
    date_receita = models.DateTimeField(default=datetime.now, blank=True)
    foto_receita = models.ImageField(upload_to='foto/%d/%m/%y', blank=True)
    publicada = models.BooleanField(default=False)
from django.urls import path

from . import views

urlpatterns = [
    path('', views.index, name='index'),
    path('<int:receita_id>', views.receita, name='receita')
]
from django.shortcuts import render, get_object_or_404
from .models import Receita

def index(request):
    receitas = Receita.objects.order_by('-date_receita').filter(publicada=True)

    dados = {
        'receitas' : receitas
    }
    return render(request, 'index.html', dados)

def receita(request, receita_id):
    receita = get_object_or_404(Receita, pk=receita_id)

    receita_a_exibir = {
        'receita' : receita
    }

    return render(request, 'receita.html', receita_a_exibir)

to com o mesmo problema

solução!

Olá Pedro e Clecio, tudo bem?

Me informem por gentileza:

  • a imagem default usada para as receitas sem uma foto específica era exibida?

estou com o mesmo problema. Não sei se tem a ver mas estou usando django 3.x. Uma outra imagem carregou. Acredito que seja outro problema aqui.

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software