【问题标题】:Django : accessing uploaded picture from ImageFieldDjango:从 ImageField 访问上传的图片
【发布时间】:2014-12-16 20:04:52
【问题描述】:

您好,我在引用 HTML 中上传的图片时遇到问题。

我正在使用 ImageField 来保存个人资料图片:

picture = models.ImageField(upload_to='stories/static/stories/profile_images/', blank=True)

如你所见,它会上传到<App folder>/static/stories/profile_images/

然后我像这样在 HTML 中引用它:

<div class="profilepic" style="background-image: url('/{{ x.writer.picture }}');"></div>

指向

ROOT/stories/static/stories/profile_images/.jpg

代替

ROOT/static/stories/profile_images/.jpg

有什么想法吗?

(我正在尝试反向截断前 8 个字符,但没有可用的内置模板过滤器)

【问题讨论】:

    标签: django imagefield


    【解决方案1】:

    因为你的upload_tostories/static/stories/profile_images/,所以它显示了正确的路径:

    ROOT/stories/static/stories/profile_images/.jpg
    

    还有一件事,你需要.url 来获取图片及其路径

    {{ x.writer.picture.url }}
    

    【讨论】:

    • 但是图片必须被称为 DOMAIN/static/stories/profile_images/.jpg 所以 DOMAIN/stories/static/stories/profile_images/.jpg 不起作用:(
    • @Lumsum "DOMAIN/static/stories/profile_images/.jpg" 不是预期的错误。所以你想要“错误的”?
    • 是的,因为图片存在于“错误”的路径中(我用测试)。我认为是因为 URLConf,所以我需要错误的路径。
    • @Lumsum 然后只需将您的MEDIA_URLMEDIA_ROOT 更改为错误的,然后您就会得到它。
    • 图片文件存在于 ROOT/stories/static/... 但要在浏览器中访问它我需要参考 DOMAIN/static... 但来自 {{ x.writer.picture. url }} 我得到了 DOMAIN/stories/static/.. 那么有什么方法可以截断 url 中的前 8 个字符?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-02-22
    • 2016-02-10
    • 2015-03-23
    • 2013-11-06
    • 2011-07-28
    • 2016-03-15
    • 2013-01-10
    相关资源
    最近更新 更多