【问题标题】:How to pass the value of console.log to django views?如何将 console.log 的值传递给 django 视图?
【发布时间】:2021-08-31 02:13:09
【问题描述】:

我看到了很多回复,但没有一个符合我的需求。 基本上我试图通过 JavaScript 获取 href 的值,我需要将其传递给我的 django 视图,当我执行 console.log 时,这是我得到的输出

http://localhost:8000/#vert-tabs-Personal localhost:8000:316:21
#vert-tabs-Personal localhost:8000:317:21
http://localhost:8000/#vert-tabs-Career localhost:8000:316:21
#vert-tabs-Career localhost:8000:317:21
http://localhost:8000/#vert-tabs-Finances localhost:8000:316:21
#vert-tabs-Finances

这是目前触发输出的脚本

    <script>
    $(".nav-link").on('click', function(e){
        console.log(e.target.href);
        console.log(e.target.hash);
    });
</script>

现在将 e.target.hash 值传递给我的 django 视图的最佳方法是什么。 我正在考虑 jquery 或 ajax 但老实说我不知道​​。 任何帮助,将不胜感激。 提前谢谢你...

【问题讨论】:

  • 关于点击事件使用jquery ajax 调用href 和ajax 成功方法更新html 这里是jquery 中关于ajax 的文档api.jquery.com/jquery.ajax

标签: javascript django django-views


【解决方案1】:

您的问题对于您想要实现的目标有点模糊,但我想说有几种方法:

  1. 通过表单

大概你在这个页面上有某种形式。如果您在提交表单时只需要 django 视图中的值,则包含一个 input 标记(可以隐藏,所以没有人看到它),然后在需要时通过 Javascript 更新它的值。然后视图将接收此值,因为它将是提交表单的一部分。

请参阅此处设置&lt;input&gt; 值:How to set the value of a input hidden field through JavaScript?

  1. 通过 ajax 调用

您可以有一个端点将其发送到,您可以将其填充到 ajax 调用的body 中,这可能是您正在使用的视图的一部分,尽管通常最好分开这些东西出来并有特定的观点来处理 ajax 的东西(或者至少这是我的经验)。

另外,既然你说你想要这个“在你看来”,我建议选项 1 对你来说是最简单和最干净的选项。

在你的模板中添加&lt;input&gt;标签,使其隐藏,并使用JS设置它的值,当你处理提交时,你会在视图中看到它。

【讨论】:

  • 实际上这不是一个输入,而是一个导航栏标签,其中有一个带有href的。我确实使用引导导航栏来显示每种链接的内容。现在我需要href。
  • 不,该值可能来自锚标记,但要将其传递回 django 视图,您希望将该值设置为表单字段,input 是最好的选择。虽然我确实质疑您首先是如何设置 URL ...
  • 正如我上面提到的,这个 href 不是页面链接,而是根据用户的点击链接显示特定内容,它们只是引导导航栏选项卡的内容。当涉及到 URL 时,我猜它们通常位于 urls.py django 文件中。但是这些使用了一个哈希,但后面是 id。我想知道如何将它们包装在输入中
  • 这是一个关于如何设置隐藏输入字段值的单独问题和回复:stackoverflow.com/questions/19232822/…
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-01-21
  • 1970-01-01
  • 2015-03-28
  • 1970-01-01
  • 2020-07-11
  • 2015-09-12
  • 2013-07-29
相关资源
最近更新 更多