Изображение Django HTML не найдено, но путь к нему правильный
Я создаю список с изображениями, но изображение не отображается. Вот моя модель:
class Hongos(models.Model):
def image_upload(self,filename):
return 'imagenes_hongos/'+str(self.uploader.user)+'/'+str(filename)
nombre = models.CharField(max_length=20, null=False)
prob = models.FloatField(null=False)
uploader = models.ForeignKey(HongOSUser, on_delete=models.CASCADE)
imagen = models.ImageField(upload_to=image_upload)
Вот мое мнение:
<ul class="list-group shadow">
<!-- list group item-->
{%for hongo in hongos%}
<li class="list-group-item">
<!-- Custom content-->
<div class="media align-items-lg-center flex-column flex-lg-row p-3">
<div class="media-body order-2 order-lg-1">
<h5 class="mt-0 font-weight-bold mb-2">{{hongo.nombre}}</h5>
<!-- <p class="font-italic text-muted mb-0 small"></p> -->
<div class="d-flex align-items-center justify-content-between mt-1">
<h6 class="font-weight-bold my-2">{{hongo.prob}}</h6>
</div>
</div><img src='/hongOS_project/{{hongo.imagen}}' alt='{{hongo.nombre}}' width="200"
class="ml-lg-5 order-1 order-lg-2">
</div> <!-- End -->
</li> <!-- End -->
{%endfor%}
</ul> <!-- End -->
А это моя директория:
Я получаю следующие ошибки:
Not Found: /hongOS_project/imagenes_hongos/pableras/amanita.jpg
Not Found: /hongOS_project/imagenes_hongos/pableras/amanita_LNFLqKi.jpg
[20/Jul/2022 10:10:50] "GET /hongOS_project/imagenes_hongos/pableras/amanita_LNFLqKi.jpg HTTP/1.1" 404 2900
[20/Jul/2022 10:10:50] "GET /hongOS_project/imagenes_hongos/pableras/amanita.jpg HTTP/1.1" 404 2876
Я думаю, что он должен работать, так как путь правильный, но он не работает.
предлагаю проверить эту страницу, возможно неправильная конфигурация https://docs.djangoproject.com/en/4.0/howto/static-files/
Я не знаю, настроили ли вы settings.py вашего проекта для работы с медиа-активами. Лучший способ обработки загрузки и рендеринга медиа файлов в шаблонах Django - использовать соответствующие соглашения, определенные в документации Django.
Чтобы ответить на вопрос, убедитесь, что вы добавили/выполнили следующие действия:
Файл Settings.py
MEDIA_ROOT = os.path.join(BASE_DIR, 'media')
MEDIA_URL = '/media/'
Ваш файл mail urls.py также должен содержать этот код...
urlpatterns = [
# urls/path
]+ static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
В файле models.py настройте поле images следующим образом...
image = models.ImageField(upload_to = 'add_folder_name_of_your_choice/', null=True)
Затем в вашем шаблоне загрузите изображения, используя этот способ...
<ul class="list-group shadow">
<!-- list group item-->
{%for hongo in hongos%}
<li class="list-group-item">
<!-- Custom content-->
<div class="media align-items-lg-center flex-column flex-lg-row p-3">
<div class="media-body order-2 order-lg-1">
<h5 class="mt-0 font-weight-bold mb-2">{{hongo.nombre}}</h5>
<!-- <p class="font-italic text-muted mb-0 small"></p> -->
<div class="d-flex align-items-center justify-content-between mt-1">
<h6 class="font-weight-bold my-2">{{hongo.prob}}</h6>
</div>
</div><img src='{{hongo.imagen.url}}' alt='{{hongo.nombre}}' width="200"
class="ml-lg-5 order-1 order-lg-2">
</div> <!-- End -->
</li> <!-- End -->
{%endfor%}
</ul> <!-- End -->