如何将媒体目录中的图像显示到模板中?

我正在使用 Django 创建我自己的管理面板。但是如果我尝试显示从 Django 管理面板上传的图像,浏览器会告诉我没有找到图像。


我已经将 MEDIA_URL 和 MEDIA_ROOT 添加到 settings.py 中,但是如果我得到并尝试打印这个变量,我在模板中看不到任何内容。


settings.py

MEDIA_ROOT = '/'

MEDIA_URL = '/media/'

models.py

class HomePhoto(models.Model):

    image_path = models.ImageField(upload_to='media/home/photos/', null=False, blank=False)

    home = models.ForeignKey(Home, on_delete=models.CASCADE, related_name='home_photos', null=False, blank=True)

views.py

...

def get_context_data(self, **kwargs):

       context = super(HomeDetailView, self).get_context_data()

       context['title'] = context['home'].address

       context['home_photos'] = home_models.HomePhoto.objects.filter(home=context['home'].pk)

       return context

template.html

{% load static %}

{% get_media_prefix as MEDIA_URL %}

{% block content %}

...

{% for photo in home_photos %}

    <div class="{% if forloop.first %}active{% endif %} item" data-slide-number="0">

        <img src="{{ MEDIA_URL }}{{ photo.image_path }}">

    </div>

{% endfor %}

...

{% endblock %}


慕雪6442864
浏览 135回答 1
1回答
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python