Как показать изображение на сайте с помощью django

Я попытался показать изображение в моем веб-сайте, которое я загрузил из панели администратора вручную с помощью django

Я ожидал увидеть свое изображение на сайте, но вместо этого он показал только маленькую иконку img, а когда я отладил статику в urls.py, она вернула мне 'Not Found: /events/event_pictures/7.png' input

связанный класс модели моего файла models.py

class Event_Model(models.Model):
    name = models.CharField(max_length=200)
    explanation = models.TextField(default="")
    link = models.CharField(max_length=300, default="")
    price = models.DecimalField(decimal_places=2, default=0.00, max_digits=10)
    stock = models.IntegerField(default=-1)
    release_date = models.DateField()
    end_date = models.DateField()
    image = models.ImageField(default="default.jpg", upload_to="event_pictures")
    is_avaible = models.BooleanField(default=True)

    # Form Attrs
    form_id = models.ForeignKey(Form_Model, on_delete=models.CASCADE)
    form_title = models.CharField(max_length=200)
    form_explanation = models.TextField(default="")

файл 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("admin/", admin.site.urls),
    path("", include("User_App.urls")),
] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)

код файла 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("admin/", admin.site.urls),
    path("", include("User_App.urls")),
]
if settings.DEBUG:
    urlpatterns += static(settings.MEDIA_ROOT, document_root=settings.MEDIA_ROOT)

файл urls.py приложения

from django.urls import path
from .views import FormView, CreateFormView, MainPage, EventsPage



urlpatterns = [
    path("", MainPage, name="index"),
    path("form/", FormView, name="form"),
    path("create/", CreateFormView, name="create-form"),
    path("events/", EventsPage, name="events")
]

файл settings.py

MEDIA_ROOT = os.path.join(BASE_DIR,'pictures')
MEDIA_URL = '/pictures/'

связанный html-файл

{% extends 'base.html' %}
{% load static %}

{% block body %}

    {% for event in events %}
         <div class="card mb-4 mt-5">
            <div class="row g-0">
                <div class="col-md-4">
                    <img class="img-fluid rounded-start" src="{{ event.image }}">
                </div>
                <div class="col-md-8">
                    <div class="card-body">
                        <h3 class="card-title">
                            {{ event.name }}

                        </h3>
                        <p class="card-text">
                            {{ event.explanation }}
                        </p>
                        <p>
                            <b>
                                 ücret: {{ event.price }}tl
                            </b>

                        </p>
                    </div>
                    <div class="card-footer ">
                        <span class="text-left">
                            son başvuru tarihi: {{ event.end_date }}
                        </span>
                        <span  style="margin-left:400px">
                            {{ event.stock }} adet kaldı
                        </span>
                    </div>
                </div>
            </div>
         </div>
    {% endfor %}


{% endblock %}

Примечание: Я вижу папку pictures внутри папки Web_Project и внутри этой папки pictures я также вижу папку event_pictures и там есть правильный png файл внутри папки event_pictures

Вы можете показать изображение с помощью {{ event.image.url }} в вашем шаблоне django вместо {{ event.image }}

Вернуться на верх