首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Django创建图像文件的路径

Django创建图像文件的路径
EN

Stack Overflow用户
提问于 2020-01-25 19:03:08
回答 2查看 147关注 0票数 0

我有一个普通的应用程序,它的目录结构类似于以下内容:

代码语言:javascript
复制
...static/
      Training/
            css/
            img/
            js/
...templates/
   ....

在我的一个模板中,我想从数据库中获取镜像名称,并构建指向该镜像的路径。例如,如果我有图像MyPicture.jpg,那么我想包括静态,并将其与'Training/img/‘和文件名组合在一起,得到如下内容

代码语言:javascript
复制
'..path to static../Training/img/MyPicture.jpg'

我发现下面的文章建议使用模板标签,所以我尝试了一下:

代码语言:javascript
复制
from django import template

register = template.Library()

@register.filter
def addstr(arg1, arg2):
    # Apparently, add has side effects, so use this:
    # https://stackoverflow.com/questions/4386168/how-to-concatenate-strings-in-django-templates
    return str(arg1) + str(arg2)

使用模板:

代码语言:javascript
复制
{% with static|addstr:"Training/img/"|addstr:course.img as imgpath %}
<img class="card-img rounded-lg rounded-top" src="{{ imgpath }}" alt="Card image">
{% endwith %}

不幸的是,这遗漏了地址的静态部分。

如何组合这三个部分?

附注:我在模板顶部有一个{% load static

谢谢

标记

EN

回答 2

Stack Overflow用户

发布于 2020-01-25 20:18:21

如果你想显示绝对完整的url,这是你需要的:

代码语言:javascript
复制
{{request.scheme}}://{{request.META.HTTP_HOST}}{{object.filefield.url}}

但是,如果您只需要显示文件,则可以使用以下命令:

代码语言:javascript
复制
<img class="card-img rounded-lg rounded-top" src="{{ object.filefield.url }}" alt="Card image">
票数 1
EN

Stack Overflow用户

发布于 2020-01-25 22:37:42

真是个愚蠢的错误。我所需要做的就是分离出静态数据,而不是把它当作字符串来处理。这是可行的:

代码语言:javascript
复制
"{% static 'Training/img/'|addstr:course.img %}"
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59908596

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档