Django将变量值添加到{%static';path';%}

Django将变量值添加到{%static';path';%},django,python-3.x,Django,Python 3.x,在我的django项目中,我必须在使用%static定义的路径中添加前缀,如下所示: <link rel="stylesheet" href="{% static "css/animate.css" %}"> 我必须添加从视图传递的{{subpath}}值,我尝试以下方法: <link rel="stylesheet" href="{% static "{{ subpath }}/css/animate.css" %}"> 但是变量的实现就像文本一样,我也尝试

在我的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?

您可以使用模板过滤器标记执行字符串连接:

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

如您所见,
子路径
变量与
'foobar'
相关联。因此,在
{%static..%}
中,我们使用
子路径添加:“/css/animate.css”
构造一个新字符串
foobar/css/animate.css
。通过使用
{%static..%}
标记,这将被替换为
/static/foobar/css/animate.css

您可以使用模板过滤器,如
{%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'