【问题标题】:Django load an imageField in a templateDjango 在模板中加载一个 imageField
【发布时间】:2020-03-15 22:17:04
【问题描述】:

问题已删除。问题已删除。问题已删除。问题已删除。

【问题讨论】:

标签: python django django-models


【解决方案1】:

我首先要检查的一件事是确保 URL 实际上正确显示在模板中。你可以通过像这样创建一个虚拟跨度来做到这一点:

<span>{{ post.thumbnail.url }}</span>

把它放在某个地方,渲染页面,看看你得到了什么。确保 URL 是正确的 URL。有时,当您弄乱媒体 URL 和根目录时,事情会变得有些不稳定。

更新: 根据您最近的编辑,我看到了两个危险信号:一个是您在标题部分中设置了正文。二是您似乎没有遍历列表视图作为上下文传递的对象列表。正如我所解释的那样,您的列表视图正在传递一个帖子列表。如果是这种情况,您的代码应如下所示:

<header>
  <a href="../../../.." id="home-btn"></a>
  <script
          src="https://code.jquery.com/jquery-3.4.1.min.js"
          integrity="sha256-CSXorXvZcTkaix6Yvo6HppcZGetbYMGWSFlBw8HfCJo="
          crossorigin="anonymous"></script>
  <script type='text/javascript'>
    window.addEventListener('scroll', function() {$('#top-bar').width(Math.round($(document).scrollTop()/document.body.offsetHeight*100*1.1)+'%');});
  </script>
</header>
<body>
    <div id='top-bar'></div>
    {% for post in posts %}
        <h1 id='title'>{{ post.title }}</h1>
        <p id='author-info'>Published {{ post.publish }} by {{ post.author }}</p>
        <img src="{{ post.thumbnail.url }}">
    {% endfor %}
</body>

不过,您的整个 HTML 文档还是有一些偏差。您需要添加 DIV 元素或网格表元素以更恰当地呈现上述内容。

【讨论】:

  • 如果你得到一个空的 span 元素,这可能意味着 Django 在渲染该元素时遇到了问题。你能从你的模板中分享一个sn-p吗?您是否正在遍历所有帖子?:{% for post in posts %}...?
【解决方案2】:

另一件事:由于您使用的是列表视图,因此您可能希望在问题中在此处发布部分模板代码。作为列表视图,您必须确保正确地循环遍历您作为上下文发送到模板的对象。

其他所有内容都按您的意愿显示在您的模板渲染中吗?只是图片显示不正确吗?

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-04-18
    • 1970-01-01
    • 2017-05-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-07-26
    相关资源
    最近更新 更多