首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何将媒体目录中的图片显示到模板中?姜戈

如何将媒体目录中的图片显示到模板中?姜戈
EN

Stack Overflow用户
提问于 2019-01-14 02:36:40
回答 1查看 3.3K关注 0票数 1

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

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

代码语言:javascript
运行
复制
settings.py
MEDIA_ROOT = '/'
MEDIA_URL = '/media/'
代码语言:javascript
运行
复制
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)
代码语言:javascript
运行
复制
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
代码语言:javascript
运行
复制
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 %}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-01-14 13:55:58

根据Django关于MEDIA_ROOTmanaging files的文档,METDIA_ROOT应该具有到介质文件夹的服务器文件系统的绝对路径。“/”表示Linux文件系统的根目录。下面是配置它的两种正确方法。

代码语言:javascript
运行
复制
settings.py
# In case media folder is in your project folder
MEDIA_ROOT = os.path.join(BASE_DIR, 'media')
# In case media folder is at different location, likes /var/www/media
MEDIA_ROOT = '/var/www/media'
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54171971

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档