javascript - Django URL使用javascript获取客户端信息

标签 javascript jquery python django url

我试图解决的问题是,我创建了一个 Ajax 自动更正输入功能和一个按钮的“onclick”,我获取该输入中的值并尝试将页面重定向到 Django URL。

这是我的 url.py 文件中的 URL:

    url(r'^groups/add-member/(?:/(?P<pk_group>[-\w]+))?/(?:/(?P<pk_member>[-\w]+))?/$', views.add_member, name='add-member')

在 HTML 中我有这个脚本:

<script>
function add_member(id){
  var input=document.getElementById("myText").value
  console.log(id)   //Correctly gets ID #  
  console.log(input)   //Correctly gets the name (string) of member instance

  url = "{% url 'add-member' 0 zzzz %}".replace('0', id).replace('zzzz',input);

}
</script>

我得到的错误是:

Reverse for 'add-member' with arguments '(0, '')' not found. 1 pattern(s) tried: 
['flexfeed/groups/add-member/(?:/(?P<pk_group>[-\\w]+))?/(?:/(?P<pk_member>[-\\w]+))?/$']

我无法理解我的错误。如果有人可以建议如何解决此问题或可能建议针对此特定问题采取不同的方法,我将非常感激!

最终目标是我希望我的页面重定向到正确链接处的更新 View !

最佳答案

好的,所以发生的顺序有问题。当 Django 呈现您的模板时,它会处理标签。这发生在调用任何 javascript 之前。

因此,您尝试使用 0 和 zzzz 作为参数来调用 url。 Django 尝试获取它,因为第二个参数是一个空变量,所以它不匹配任何内容。

我会通过使用两个有效的变量调用 url,然后使用 javascript 更改它们来解决此问题。

    url = "{% url 'add-member' 0 'change-team' %}";
    url = url.replace(0, id).replace('change-team', input);

您也可以只在 zzzz 两边加上引号。

关于javascript - Django URL使用javascript获取客户端信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47666302/

相关文章:

javascript - D3js 没有将经度/纬度点正确投影到 topojson map 上

python - 数据框 Pandas 中总和的百分比

python - 如何制作可移植的 python 桌面应用程序?

javascript - getElementById 返回空值? (使用 Vue)

javascript - Jquery 用户界面 : Button on dynamically created elements

jquery - 仅过滤 google map api 中的子区域

jquery - 在 Twitter Bootstrap 模式中启用 anchor

javascript - 生成图形图表报告

Python:使用 matplotlib 绘制 x-y 图

javascript - typescript 中的对象可能是 'null'