如何将变量放在模板标签的参数中? [英] How do you place a variable inside a template tag's argument?

查看:293
本文介绍了如何将变量放在模板标签的参数中?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

使用Django媒体,我可以执行以下操作:

With Django media I could do the following:

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

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

Now, I'd like to switch to static files. However this (obviously) does not work any more:

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

有没有一些干净的方式来实现我正在尝试要做?

Is there some clean way to achieve what I'm trying to do?

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

[ I want to switch for consistency, because the admin and many third-party apps I'm using have switched. Also, I'm worried that the Django media will be deprecated sometime in the future. ]

推荐答案

你有两个选择。第一个,如所建议的,使用 {{STATIC_URL}}

You have two options. First one, as suggested, use {{ STATIC_URL }}:

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

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

Alternatively, as {% static %} only prefixes its argument but does not require the path to be actually valid:

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

这篇关于如何将变量放在模板标签的参数中?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆