6
respostas

Não carrega nenhum imagem.

Boa noite pessoal. fiz e refiz todo o processo ensinado nos videos "Foto para cada receita" e "Exibindo foto", não da erro algum, porém, não é exibida as imagens, nem no index.html, nem no receita.html. Está aparecendo a imagem () que é aquela onde quando não for adicionado uma imagem é atribuído ela no index. Mas as imagens carregadas tanto no index quanto na receita, não aparecem.

segue código.

index.html

<!-- 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 == '' %}
                            <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>

receita.html

<!-- Receipe Slider -->
        <div class="container">
            <div class="row">
                <div class="col-12">
                    <div class="receipe-slider owl-carousel">
                        {% if receita.foto_receita == '' %}
                            <img src="{% static 'img/bg-img/tomate_banner.jpg' %}">
                        {% else %}
                            <img src="{{ receita.foto_receita.url }}" alt="">
                        {% endif %}
                    </div>
                </div>
            </div>

urls.py

from django.contrib import admin
from django.urls import path, include
from django.conf import settings
from django.conf.urls.static import static

urlpatterns = [
    path('', include('receitas.urls')),
    path('admin/', admin.site.urls),
] + static(settings.MEDIA_URL, documents_root=settings.MEDIA_ROOT)

settings.py

#MEDIA
MEDIA_ROOT = os.path.join(BASE_DIR, 'media')
MEDIA_URL = '/media/'

receita\models.py

class Receita(models.Model):
    pessoa = models.ForeignKey(Pessoa, on_delete=models.CASCADE)
    nome_receita = models.CharField(max_length=200)
    ingredientes = models.TextField()
    modo_preparo = models.TextField()
    tempo_de_preparo = models.IntegerField()
    rendimento = models.CharField(max_length=100)
    categoria = models.CharField(max_length=100)
    data_receita = models.DateTimeField(default=datetime.now, blank=True)
    foto_receita = models.ImageField(upload_to='fotos/%d/%m/%Y/', blank=True)
    publicada = models.BooleanField(default=False)
6 respostas

Como você usou declarou o formulário que carrega as imagens?

É muito importante não esquecer do enctype em formulários com type file

<form method="POST" action="url" enctype="multipart/form-data>

Raul, Boa noite. Não consegui encontrar esse trecho de codigo que me passou.

Esse código está no HTML do formulário de cadastro de receitas. Use o enctype na tag form, quebrei muito a cabeça com esse erro. Espero que seja isso, abraço. Caso não seja, estamos aí para tentar ajudar

Raul, Boa noite. Ainda não consegui solucionar cara... Esse é todo o meu codigo do receita.html

{% extends 'base.html' %}
{% load static %}
{% block content %}
    <!-- Preloader -->
    <div id="preloader">
        <i class="circle-preloader"></i>
        <img src="{% static 'img/core-img/hamburger.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' %}

        <!-- Receipe Post Search -->
        <div class="receipe-post-search mb-80">
            <div class="container">
                <form action="#" method="post">
                    <div class="row">
                        <div class="col-12 col-lg-5">
                            <select name="select1" id="select1">
                                <option value="1">Comida típica brasileira</option>
                                <option value="1">Massas</option>
                                <option value="1">Veganas</option>
                            </select>
                        </div>
                        <div class="col-12 col-lg-2 text-right">
                            <button type="submit" class="btn delicious-btn">Buscar</button>
                        </div>
                    </div>
                </form>
            </div>
        </div>

        <!-- Receipe Slider -->
        <div class="container">
            <div class="row">
                <div class="col-12">
                    <div class="receipe-slider owl-carousel">
                        {% if receita.foto_receita == '' %}
                            <img src="{% static 'img/bg-img/tomate_banner.jpg' %}">
                        {% else %}
                            <img src="{{ receita.foto_receita.url }}" alt="">
                        {% endif %}
                    </div>
                </div>
            </div>
        </div>

        <!-- Receipe Content Area -->
        <div class="receipe-content-area">
            <div class="container">

                <div class="row">
                    <div class="col-12 col-md-8">
                        <div class="receipe-headline my-5">
                            <span>{{receita.data_receita}}</span>
                            <h2>{{receita.nome_receita}}</h2>
                            <div class="receipe-duration">
                                <h6>Preparo: {{receita.tempo_de_preparo}} minutos</h6>
                                <h6>Rendimento: {{receita.rendimento}}</h6>
                                <h6>Categoria: {{receita.categoria}}</h6>
                                <h6>Por: {{receita.pessoa}}</h6>
                            </div>
                        </div>
                    </div>

                <div class="row">
                    <div class="col-12 col-lg-8">
                        <!-- Single Preparation Step -->
                        <div class="single-preparation-step d-flex">
                            <p>{{receita.modo_preparo}}</p>
                        </div>
                    </div>

                    <!-- Ingredientes -->
                    <div class="col-12 col-lg-4">
                        <div class="ingredients">
                            <h4>Ingredientes</h4>
                            <div class="ingredients">
                                <p>{{receita.ingredientes}}</p>
                            </p>
                            </div>
                        </div>
                    </div>
                </div>
                <!-- Ingredientes -->

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

Onde está o formulário de criação de receita? É nele que você deve colocar o enctype. Esse HTML que você mandou só tem a views dos dados já cadastrado e um filtro. Seria mais fácil mandar o GIT.

Sempre que você for fazer o upload de um input do tipo file pro banco, você deve colocar na tag

o enctype

Olá Raul. Boa tarde https://github.com/williandamas/Python-Djando Segue o link do meu repositório subi a pasta completa, pois não sei o que você procura. Literalmente parei o curso por que não passo dessa parte. Agradeço a atenção