我对drango模板的理解是,一切都发生在服务器端,然后它从模板中生成一个html。之后,生成,它只是html中的纯文本。但由于某种原因,我能够在javascript中动态使用django变量。
这是一个javascript示例:
$("#smth").append("<li>{{djangoObject.0.id}}</li>");
即使我把它放在一个事件处理程序中,也就是说,它肯定会在html生成之后被调用,它的工作正常。
为何而且最重要的是,为什么django会将变量保留在客户端?
答案 0 :(得分:1)
此代码呈现为$("#smth").append("<li>123</li>");
之类的内容。当然这项工作在html生成后没有任何问题。
答案 1 :(得分:1)
它没有被客户端使用,它只是直接呈现在Javascript字符串中。因此,如果djangoObject[0].id
为12,则生成的代码看起来像
$("#smth").append("<li>12</li>");
显然,这样运行得很好。虽然它不是动态的,但请务必记住这一点 - 它不会在事件发生时获取id
。它在模板渲染时获取它,这在HTML(和嵌入式Javascript)发送到客户端(您的浏览器)之前发生。