Django : Display uploaded image with media

标签 django

我想在我的模板中显示每个对象的上传图片。我遇到了一个问题,因为当我点击 picture url 时,media 路径出现错误。

我的模型中有:

class Publication(models.Model):
    ...
    cover = models.ImageField(upload_to='media/', verbose_name=_('cover page'))

然后,我在我的设置部分:

MEDIA_URL = 'media/'
MEDIA_ROOT = BASE_DIR + '/myapp/'

现在,在我的模板文件中,我显示这样的图片:

{% if item.cover %}
    <td>
        <a href="{{item.cover.url}}" target="_blank">
            <img class="glyphicon glyphicon-home" src="{{item.cover.url}}" alt="{{item.cover}}">
        </a>
    </td>
{% else %}
    <td></td>
{% endif %}

enter image description here

模板页面 url 为:http://localhost:8000/crud/publication/list/ 当我点击我的图片链接时,我得到:http://localhost:8000/crud/publication/list/media/media/couverture_qZQKLED.jpg

这是错误的,我应该得到:

http://localhost:8000/media/couverture_qZQKLED.jpg

然后,我想用字形替换可见元素。

你能帮帮我吗?

在我的 urls.py 文件中,我有:

if settings.DEBUG:
    urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)

最佳答案

settings.py 中媒体文件的正确配置

# Media files, uploaded by user
MEDIA_ROOT = os.path.join(BASE_DIR, 'media')
MEDIA_URL = '/media/'

模板

<a href="{{item.cover.url}}" target="_blank">
    <!-- An alt tag in span makes no sense, so you can use title tag if you want. -->
    <span class="glyphicon glyphicon-home" title="{{item}}"></span>
    <!-- OR show item's str inside span -->
    <span class="glyphicon glyphicon-home">{{item}}</span>
</a>

关于 Django : Display uploaded image with media,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52832000/

相关文章:

django - 使用 FileField 在 Django 表单中生成具有 "accept"属性的输入标签

python - 如何创建一个 View 来检索 url 中具有匹配主键的所有对象?

python - 将思维从 CakePHP 转移到 Django - 一个单一的 View 文件?

Python 异步反向 DNS 查询

javascript - Django 管理员 : django is not defined

Django 在创建时为对象设置创建者/所有者

django-通知-hq : cannot show notifications

python - Django,织物 : What is the best way to manage secret keys to deploy Django projects?

python - 尝试向本地主机 :9000/store 发送错误时,Django-Sentry 给出错误 405

django - 只从查询集中获取某个类型的最新项目