django if外部jquery文件中的语句

时间:2013-11-26 14:40:29

标签: jquery django

我的jquery代码在html中工作但在我在外部js文件中移动代码时无效。 我发现可能django无法呈现

{% if something %}

为什么?

2 个答案:

答案 0 :(得分:2)

通常我们将python中的标志传递给上下文,然后将其渲染为隐藏输入或隐藏元素,最后通过jquery访问它的值:

在django,

your_flag = 'foo'
render(request, '[template]', {'flag': your_flag})

在模板中,

<input type="hidden" name="flag" value="{{ flag }}" />

在js文件中,

var flag = $("[name='flag']").val()
if (flag === 'foo') {
    // then do a lot of things
} 

答案 1 :(得分:0)

它在.js文件中不起作用,因为.js文件“按原样”加载,而不是处理过的模板。因此,任何模板代码都将逐字加载,并且可能会导致js文件中的解析错误。使用firebug或chrome dev工具进行检查。

如果您希望模板系统处理您的js,则需要使用{% include "subtemplate.js" %},但最终会使用内联代码。否则,您需要实现@ iMom0。

的内容