Django - 无法加载保存到数据库的图像

时间:2017-07-20 20:39:14

标签: python django django-staticfiles

正如标题所说,我无法加载我保存在数据库中的图像。

我正在将上传的图片保存在“TV / media / logo_image /”中 这是我的MEDIA_URL:

STATIC_URL = '/static/'

MEDIA_URL = '/media/'

MEDIA_ROOT= os.path.join(BASE_DIR, 'Tv/media')

我的模特:

class EmpresaProfile(models.Model):
    empresa = models.CharField(max_length=20, blank=False, default="")
    logo = models.ImageField(upload_to='logo_image', blank=True)

    def __str__(self):
        return self.empresa

这是我的views.py:

def index(request):
    empresa = EmpresaProfile.objects.all()

    return render_to_response('Tv/index.html',{'empresa': empresa})

模板:

    <div style="height: 100px;">
    {% for empresa.logo in empresa %}
        <img class="img-responsive" src="{{MEDIA_URL}}{{ empresa.logo }}" alt="" width="1000px" />
    {% endfor %}
</div>

这是我访问的第一页,所以这是mu url:

urlpatterns = [
url(r'^$', views.index, name='index'),]

我在图片标签

中获得了“未知”来源

谢谢

2 个答案:

答案 0 :(得分:1)

您应该在模板中更改您的forloop

<div style="height: 100px;">
    {% for emp in empresa %}
        <img class="img-responsive" src="{{MEDIA_URL}}{{ emp.logo }}" alt="" width="1000px" />
    {% endfor %}
</div>

答案 1 :(得分:0)

对静态文件执行此操作的正确方法是使用

static() 

对于媒体,你应该这样做:

<img src="{{ product_image }}" alt="" />

在该页面的视图功能中:

link_to_home_page = 'http://127.0.0.1:8000'

product_image   = link_to_home_page + one_new_product.main_picture.url

也不要忘记开发服务器,请使用:

    if settings.DEBUG:
      urlpatterns += static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)
      urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT + os.path.altsep)