【问题标题】:Django/python/static files/Jinja, How to concatenate string and jinja expression INSIDE jinja statementDjango/python/static files/Jinja,如何连接字符串和 jinja 表达式 INSIDE jinja 语句
【发布时间】:2020-04-16 10:23:39
【问题描述】:

如何在 jinja 语句中 concat 一个字符串和一个 jinja 表达式?

{% for pic in pictures %}
    {% if pic.name == line.name %}
        <img class="card-img-top" src="{% static 'orders/img/'pic.picture %}" >
    {% endif %}
{% endfor %}

在这个带有 Jinja 的标签中,pic.picture 是一个 jinja 快递,但是如何使用 'orders/img/' 来concat

图片:

谢谢。

【问题讨论】:

  • {% static 'orders/img/' ~ pic.picture %}
  • 不幸的是,这不起作用(〜的所有权利都被忽略了)。如果没有变通办法,也许这是不可能的

标签: html django jinja2


【解决方案1】:

默认Django Template Language 看起来像 Jinja 但不是其中之一 - 它有自己的过滤器并且不支持所有 Jinja 标记/过滤器。

Django built-in filters 的可用选项:

  • 使用add 过滤器连接字符串(虽然不推荐因为会尝试转换为整数,more about it here,但如果部分显然是字符串...) :
src="{% static 'orders/img/'|add:pic.picture %}"
  • 没有加入,解析基础静态路径追加文件名之后
src="{% static 'orders/img/' %}{{ pic.picture }}"
{% get_static_prefix as STATIC_PREFIX %}
src="{{ STATIC_PREFIX }}orders/img/{{ pic.picture }}"

Jinja2 可以配置为 django template backend.

【讨论】:

    猜你喜欢
    • 2018-07-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-24
    • 2017-07-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多