我正在使用 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 %}
相关分类