首页 > 解决方案 > 如何从 Django URL 获取 pk 到 ajax

问题描述

我有一个使用主键的 django url,我希望能够在我的 javascript/ajax 片段中引用它。我在网上找不到任何示例,这可能吗,还是我需要做一些事情,比如从 url 中删除所有字母?

网址.py

path('survey/<int:pk>/record_question/', QuestionRecordView.as_view(), name='survey-question-record'),

标签: pythondjangoajax

解决方案


有几种方法可以做到这一点。最简单的方法如下。

您始终可以使用语法 {{ param_name }} 获取模板层中的 url 参数

所以,如果你的网址是

path('survey/<int:pk>/record_question/', QuestionRecordView.as_view(), name='survey-question-record'),

然后使用,

{{ pk }}

在您的模板 HTML 文件中。这将使您可以访问 url 参数 --> pk。

要将此值传递给您的 ajax,您可以在 html 中的脚本标记内声明此值,然后使用 this 作为参数调用您的 ajax 函数。

例如:

<script>
    var pk = {{ pk }} ;
</script>

接下来,您可以在 js 文件 ajax 函数或同一 html 中使用此变量。如果您使用的是单独的 js 文件,只需确保将该 js 文件链接到此 html。

例如:

<script>
    Foo.foo = {
            id = pk
            $.ajax({
                url: url,
                data: {
                    'id': id
                },
                success: function (data) {
                   your_logic
                }
            });
        },
    }
</script>

推荐阅读