繁体   English   中英

使用JavaScript的Django URL获取客户端信息

[英]Django URL using javascript to get client end information

我要解决的我的问题是,我做了一个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]+))?/$']

我无法理解自己的错误。 如果有人可以提出解决此问题的建议,或者可能提出针对此特定问题的不同方法,我将不胜感激!

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

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

因此,您尝试使用0和zzzz作为参数来调用网址。 Django尝试获取它,因为第二个参数是一个空变量,此处不匹配任何东西。

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

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

您也许还可以在zzzz周围加上引号。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM