首页 > 解决方案 > Django 将变量值添加到 {%static 'path' %}

问题描述

在我的 django 项目中,我必须在一些用 %static 定义的路径中添加一个前缀,如下所示:

<link rel="stylesheet" href="{% static "css/animate.css" %}">

我必须添加从我的视图传递的 {{ subpath }} 值,我试试这个:

<link rel="stylesheet" href="{% static "{{ subpath }}/css/animate.css" %}">

但是该变量像文本一样实现,我也尝试过:

<link rel="stylesheet" href="{% static {{ subpath }}"/css/animate.css" %}">

但是发生了错误。

如何正确地将变量值添加到我的 href 中?

标签: djangopython-3.x

解决方案


add您可以使用[Django-doc]模板过滤器标签执行字符串连接:

<link rel="stylesheet" href="{% static subpath|add:"/css/animate.css" %}">

例如:

>>> from django.template import Template, Context
>>> Template('{% load static %}{% static subpath|add:"/css/animate.css" %}').render(Context({'subpath': 'foobar'}))
'/static/foobar/css/animate.css'

如您所见,该subpath变量与'foobar'. 所以在{% static .. %}, 标记中我们用subpath|add:"/css/animate.css"一个新的字符串构造foobar/css/animate.css。通过使用{% static .. %}标签,这将被替换(这里,根据默认设置),用/static/foobar/css/animate.css.


推荐阅读