我试图弄清楚如何在Django中传递一个特定的js文件,该文件发出AJAX请求。在
假设我们有一个url,其路径参数映射到特定视图:
url(r'^post/(?P<post_id>\d+)/$', TemplateView.as_view('post.html'))
然后,post.html
包含一个脚本,该脚本执行AJAX请求以JSON形式获取帖子:
这可能是js文件。假设我们这样做是因为需要在js插件中使用post(作为JSON)以特殊的方式显示它。在
post.js
$.ajax({
url: '/post/??post_id??',
contentType: 'application/json'
})
.done(function(post_data) {
togglePlugin(post_data);
});
我主要关心的是如何从js文件中找出post_id
是什么,以便进行适当的调用。在
在Django,这些部件通常是如何连接的?我所说的部分是url、路径参数、视图和ajax。在
您可以将post_id变量传递给django模板。 但是,如果您不想让它“受伤”,请将您的.js代码(脚本)放入由django呈现的html文件中。所以可以使用django模板标记。在
例如:
若要从模板中获取url,应使用
{% url %}
模板标记,为此,应向url添加名称:url(r'^post/(?P<post_id>\d+)/$', TemplateView.as_view('post.html'), name='my_name)
然后在您的can模板中以这种方式调用该url
{% url 'my_name' object.pk %}
请参阅this了解更多信息。在当您为您的js使用不同的文件,并且希望传递django变量时,应该在导入js文件之前声明一个
<script>
,然后在那里声明您的变量:然后在js中使用变量
foo
。在相关问题 更多 >
编程相关推荐