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

时间:2018-08-24 11:11:37

标签: django python-3.x

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

1 个答案:

答案 0 :(得分:1)

您可以使用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替换。