是否可以在 django 模板中的 javascript 中使用 tempatetags?
Posted
技术标签:
【中文标题】是否可以在 django 模板中的 javascript 中使用 tempatetags?【英文标题】:Is it possible to use tempatetags inside javascript in a django template? 【发布时间】:2013-10-17 19:24:55 【问题描述】:我可以在 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);
【问题讨论】:
"我可以使用...吗?"嗯,你试过了吗? @Amadan 它不起作用。即只是提醒% url 'ajax_choice_question' %
是getChoices
渲染那个模板吗?如果是这样,它应该可以工作。就 django 而言,模板只是文本。您的标签是否在 script
块中并不重要
@TimmyO'Mahony 是的,问题是我将脚本放在外部.js
文件中。我更新了问题
@Amadan 我更新了问题....现在它不能正常工作了。好的,我可以使用网址ajax/quest/
...无论如何谢谢..我需要删除这个问题吗???
【参考方案1】:
如果您的模板标签位于外部 javascript 文件中(即 STATIC_ROOT
中的文件),那么您的模板标签将不起作用,因为 django 不提供这些 javascript 文件,您的网络服务器可以。 Django 仅提供视图中指定模板的渲染结果,而不提供任何相关的 javascript 或 css 文件。
如果你想让它工作,你需要创建一个 url 和视图来渲染带有上下文的 javascript 并将其提供给客户端,但这是一个非常糟糕的主意。你最好在你的 html 文件中包含相关的 javascript 并在那里使用你的模板标签,或者找到另一种方法将你的模板标签的结果传递给外部 javascript
【讨论】:
好的,我可以使用网址 ajax/quest/ ...无论如何谢谢.. 我需要删除这个问题吗??? 不,你不需要删除它。以上是关于是否可以在 django 模板中的 javascript 中使用 tempatetags?的主要内容,如果未能解决你的问题,请参考以下文章