如何将变量放在模板标记的参数中?

时间:2013-06-20 18:03:29

标签: django django-templates

使用Django媒体,我可以做到以下几点:

{% for language in LANGUAGES %}
  <script type="text/javascript" src="{{ MEDIA_URL }}app/js/jquery.ui.datepicker.{{ language.0 }}.js"></script>
{% endfor %}

现在,我想切换到静态文件。然而,这(显然)不再起作用了:

{% for language in LANGUAGES %}
  <script type="text/javascript" src="{% static "app/js/jquery.ui.datepicker.{{ language.0 }}.js" %}"></script>
{% endfor %}

有没有一些干净的方法来实现我想要做的事情?

[我想切换一致性,因为我正在使用的管理员和许多第三方应用已切换。此外,我担心Django媒体将来会被弃用。 ]

1 个答案:

答案 0 :(得分:2)

您有两种选择。首先,如建议的那样,使用{{ STATIC_URL }}

{% for language in LANGUAGES %} 
<script type="text/javascript"
  src="{{STATIC_URL}}app/js/jquery.ui.datepicker.{{ language.0 }}.js"
></script> 
{% endfor %}

或者,由于{% static %}仅为其参数添加前缀,但不要求路径实际有效:

{% for language in LANGUAGES %} 
<script type="text/javascript"
  src="{% static "app/js/jquery.ui.datepicker" %}.{{ language.0 }}.js"
></script>                                 
{% endfor %}