是否可以在django模板中使用javascript内的tempatetags?

时间:2013-10-10 06:49:37

标签: javascript python django django-templates django-urls

我可以在django模板中的javascript中使用{% url 'ajax_choice_question' %}吗?

例如:如何使这项工作?

urls.py

url(r'^ajax/quest/$','getChoices',name='ajax_choice_question'),

在模板

<script>
    var urllink="{% url 'ajax_choice_question' %}";
    alert(urllink);
</scritp>

更新

模板文件

{% block extrajavascript %}     
    <script src="/static/js/myjs.js"></script>      
{% endblock %}

myjs.js

var urllink="{% url 'ajax_choice_question' %}";
alert(urllink);

1 个答案:

答案 0 :(得分:1)

如果您的模板标签位于外部javascript文件中(即STATIC_ROOT中的文件),那么您的模板标签将无效,因为django不会为您的网络服务器提供这些javascript文件。 Django仅提供视图中指定的模板的渲染结果,而不是任何相关的javascript或css文件。

如果你希望这个工作,你需要创建一个url和view来呈现带有上下文的javascript并将其提供给客户端,但这是一个非常糟糕的主意。你最好在你的html文件中包含相关的javascript并在那里使用你的模板标签,或者找到另一种方法将模板标签的结果传递给外部javascript