【问题标题】:Image from ImageField doesn't load in Django template来自 ImageField 的图像未在 Django 模板中加载
【发布时间】:2013-11-17 14:12:20
【问题描述】:

这是DJ模特

class DJ(models.Model):
    name = models.CharField(max_length=50, unique=True)
    rank = models.IntegerField(default=None, blank=True, null=True)
    img = models.ImageField(upload_to='/img/', height_field=None, width_field=None)

这就是我保存 DJ 实例的方式

dj = DJ(name=name, rank=rank, img='/img/'+rank+'.jpg')
dj.save()

MEDIA_ROOT 和 MEDIA_URL 是

MEDIA_ROOT = 'c:/jaskaran/dropbox/edmhunters/hunt/media/'

MEDIA_URL = '/media/'

我已将其包含在 urls.py 文件中

urlpatterns += staticfiles_urlpatterns()
urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)

这就是我在模板文件中访问图像的方式

<img src="{{ MEDIA_URL }}{{ dj.img }}" class="img-rounded"/>

当我看到源代码时

当我转到http://127.0.0.1:8000/media/img/1.jpg 时,图像会显示在浏览器中,但不会显示在模板中。

编辑 - 当我检查图像元素时,地址显示为 http://127.0.0.1:8000/img/1.jpg。为什么{{ MEDIA_URL }} 不能正常工作?

【问题讨论】:

  • dj var 是否正确发送到视图?
  • 是的,DJ名字和排名显示正确。
  • 什么显示“{{ MEDIA_URL }}{{ dj.img }}”和“{{ dj.img.url }}”?
  • 感谢 {{dj.img.url}} 工作:)

标签: django django-templates django-models


【解决方案1】:

使用{{ dj.img.url }} 代替{{ MEDIA_URL }}{{ dj.img }} 有效。

【讨论】:

    猜你喜欢
    • 2013-04-18
    • 1970-01-01
    • 1970-01-01
    • 2013-04-24
    • 2015-12-04
    • 1970-01-01
    • 2013-04-11
    • 2011-07-28
    相关资源
    最近更新 更多