Изображения 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/'