【发布时间】:2016-03-30 09:42:07
【问题描述】:
我试图弄清楚如何用图像解决这个问题,但我找不到答案。我正在尝试将我的模型的“ImageField”显示到模板中。
我通过管理网站上传了一张图片,当我想显示它时,我无法正确渲染图片(它显示一个图标但看不到图片)。
我试图从中显示图像的模型对 ImageField 有以下声明:
figure = models.ImageField(upload_to='static/img/list-icons',
blank=True,
null=True,
verbose_name=_("Figure"))
作为“upload_to”路径,是存储图像的静态文件目录的路径。我正在尝试使用此代码获取模板中的图像(我尝试了几种组合):
{% for quiz in quiz_list %}
<tr>
<td>{{ quiz.title }}</td>
<td>{{ quiz.category }}</td>
<td><img src="{{ quiz.figure.url }}" /></td>
<td>{{ quiz.single_attempt }}</td>
</tr>
{% endfor %}
模型是 Quiz(ListView),我没有更改 views.py 的任何内容(最近刚刚添加了图像字段)。是否需要添加一些语句?什么样的?
我在settings.py 中添加了'MEDIA_ROOT' 的近似值,以及我的静态图像目录的路径(与模型中的upload_to 相同),我也不确定如何定义或是否有必要定义'MEDIA_URL'。
如何直接从模型中显示图像(我也尝试过{{quiz.figure}},但只显示了“upload_to”路径),从它们所在的静态目录中选择它们?非常感谢您的帮助,谢谢。我会回答添加所需的附加信息。
编辑 1: 它现在输出的内容是这样的:
我的 urls.py 文件是这样结束的:
+ static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)
我认为需要让 CSS 像现在这样正常工作。
【问题讨论】:
标签: python django image templates imagefield