我正在尝试创建一个简单的网络链接切换,以便在我的应用中关注或取消关注问题。我接近使用信息My Own Like Button: Django + Ajax -- How?,但我不是那里。
我的问题是我无法动态地将question.id传递给我的JS函数,因为上面链接中的答案暗示。即
下面的硬连线JS代码可以正常工作。它将'12'
作为绑定到/question/follow-unfollow-inline/
的视图的有效参数传递。但是当我尝试用调用此JS代码的模板中的上下文变量'12'
替换'{{ question.id }}'
时,我的函数将字符串'{{ question.id }}'
传递回/question/follow-unfollow-inline/
而不是它的值。我该如何解决这个问题?
$(function () {
$("#follow_unfollow_toggle").click(function () {
$.ajax({
type: "POST",
url: "/question/follow-unfollow-inline/",
data: { 'qid': '12' },
success: function (e) {
alert('Success!');
}
});
});
});
目前,我在我的视图中使用@csrf_exempt
,但我知道我应该将其作为数据传递。
答案 0 :(得分:2)
您可以使用data-
属性
模板:
<a id="follow_unfollow_toggle" href="#" data-qid="{{ question.id }}">Like</a>
Js文件:
$(function () {
$("#follow_unfollow_toggle").click(function () {
$.ajax({
type: "POST",
url: "/question/follow-unfollow-inline/",
data: { 'qid': $(this).data('qid') },
success: function (e) {
alert('Success!');
}
});
});
});