Изображения Django не отображаются в шаблоне

Я потратил целый день, пытаясь найти решение для показа изображений в шаблоне, но не смог найти никакого решения для моего случая.

Это мои настройки

STATIC_URL = '/static/'

MEDIA_URL = '/media/'

MEDIA_ROOT = os.path.join(BASE_DIR, 'media')

STATIC_ROOT = os.path.join(BASE_DIR, 'static')

STATICFILES_DIRS = [
 os.path.join(BASE_DIR, 'DataCallGuide/static')
]

Моя модель

class TroubleshootingSteps(models.Model):

box_header = models.CharField(blank=True, null=True, max_length=250)
box_content = models.CharField(blank=True, null=True, max_length=250)
box_botton = models.CharField(blank=True, null=True, max_length=250)

header = models.TextField(blank=True, null=True)
sub_header = models.TextField(blank=True, null=True)
text1 = models.TextField(blank=True, null=True)
image1 = models.ImageField(blank=True, null=True, upload_to="images/")

и шаблон

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


 <div class="container overflow-hidden">
  <div class="text-center">
   <h4 class="mt-5 mb-5">{{data.header}}</h4>
  </div>

  <h3 dir="rtl" class="rtlss">{{data.sub_header}}</h3>
  <img src="{{ data.image1.url }}">

  </div>

{% endblock%}

Что случилось?

Вы изменили url.py?

urlpatterns = [
    Your urls
] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)

вместо этого:

 <img src="{{ data.image1.url }}">

Попробуйте этот способ:

<img src="/media/images/{{ data.image1 }}">

Если изображения не загружаются из папки static, сделайте следующее

# do comment static root path

STATIC_ROOT = os.path.join(BASE_DIR, 'static')

# add static dirs path like this

STATICFILES_DIRS = [os.path.join(BASE_DIR, 'static')]

#----------- OR ---------------

STATICFILES_DIRS = [BASE_DIR / 'static']

Если изображения не загружаются из папки media, сделайте следующее

# --------- Show Image in Html   ---------

# Add Code in Project (urls.py)
from django.contrib import admin
from django.urls import path,include

from django.conf import settings # --------> this
from django.conf.urls.static import static # --------> this

urlpatterns = [
    path('admin/', admin.site.urls),
    path('', include('myapp.urls')),
]+static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT) # --------> this

# Add Code in Project (setting.py)
# MEDIA_ROOT =  os.path.join(BASE_DIR, 'media') 
MEDIA_ROOT =  BASE_DIR / 'media' 
MEDIA_URL = '/media/'
Вернуться на верх