Javascript 如何将Django模板上下文变量传递给JS函数

Javascript 如何将Django模板上下文变量传递给JS函数,javascript,ajax,django,Javascript,Ajax,Django,我正在尝试创建一个简单的web链接切换,用于在我的应用程序中跟踪或取消跟踪问题。我很接近使用的信息,但不完全在那里 我的问题是,我不能像上面链接中的答案所暗示的那样,动态地将question.id传递给我的JS函数。即 下面的硬连线JS代码确实有效。它将'12'作为绑定到/question/follow unfollow inline/的视图的有效参数传递。但是,当我试图从调用此JS代码的模板中将'12'替换为上下文变量'{question.id}}}时,我的函数将字符串'{{question.

我正在尝试创建一个简单的web链接切换,用于在我的应用程序中跟踪或取消跟踪问题。我很接近使用的信息,但不完全在那里

我的问题是,我不能像上面链接中的答案所暗示的那样,动态地将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\u export
,但我知道我应该将其作为数据传递

您可以使用
数据-
属性在锚定标记上定义它:

模板:

<a id="follow_unfollow_toggle" href="#" data-qid="{{ question.id }}">Like</a>

你试过让Django提供JavaScript吗?嗨。不确定这是否回答了您的问题,但在调试模式下,我的所有静态文件都由Django提供。否则Amazon S3。停止将其作为静态文件。因此,直接将js插入到我的模板中,而不是从外部js文件调用?我试过了。如果你只有一个问题要跟进/不跟进,那么它是有效的,但我有一个问题列表。如果我将JS放在循环中,它只适用于列表中的第一个问题。如果我将JS放在循环之外,我将丢失当前问题id的内容。谢谢@dolan,这非常有效。我还意识到我需要将
id=“follow\u unfollow\u toggle”
更改为
class=“follow\u unfollow\u toggle”
,这样我的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!');
            }
        });
    });
});