【问题标题】:NoReverseMatch at /account/profile/account/profile 中的 NoReverseMatch
【发布时间】:2017-11-15 15:23:40
【问题描述】:

我在尝试运行 JS 函数和按下按钮时的 Ajax 单击调用时收到以下错误消息。

/account/profile/ 中的 NoReverseMatch 未找到“”的反向。 '' 不是有效的视图函数或模式名称。

我知道这是因为网址,但我不确定我的网址有什么问题。

在使用 linting 工具时,我还会收到关于我的代码中缺少分号的注释错误消息,但添加逗号似乎会破坏代码。如果我将我的 url 更改为“/requestaccess/”,我会在控制台中看到该帖子,但该视图无效。

在 JS 中我的 var 被定义为

                  var url = '{% url requestaccess %}';

在 ajax 中,我尝试使用以下方式调用 url:

                  $.ajax({
                      url: url,
                      data: JSON.stringify({ report_id: SelectedItems }),
                      dataType: 'json',
                      type: 'post',
                      success: function (data) {

URL.py 设置为:

   url(r'^requestaccess/$', views.requestaccess, name='requestaccess')

我的整个代码块是:

                  <script>
$(document).ready(function () {
                      var SelectedItems = [];
                      $('.checkbox').click(function () {
                          var SelectedItems = $(this).val();
                          var index = SelectedItems.indexOf(SelectedItems);
                          var url = '{% url requestaccess %}';
                          if (index == -1)
                          {
                            SelectedItems.push(SelectedItems);
                          }        else {
                            SelectedItems.splice(index, 1);
                          }
                        });

                      $('#submit-button').click(function (event) {
                          event.preventDefault();
                          $.ajax({
                              url: url,
                              data: JSON.stringify({ report_id: SelectedItems }),
                              dataType: 'json',
                              type: 'post',
                              success: function (data) {
                              }  //missing comma before closing curly brace
                            });
                        });
                    });
                  </script>

【问题讨论】:

    标签: django django-urls


    【解决方案1】:

    当使用 URL 标签时,像这样在 URL 名称周围加上两个引号

    var url = "{% url 'requestaccess' %}";
    

    完成!

    【讨论】:

    • 这样做会产生意外令牌、预期错误并且代码无法运行。
    • 成功了,我的个人资料页面加载了,但现在我的 POST 请求永远不会发出。我认为这与关闭花括号之前缺少逗号有关,但添加一个会破坏代码。
    • 点击时是否看到控制台中访问的url?或任何错误??
    • 忽略该响应,在我重新启动控制台后 POST 通过。我现在知道问题了,很容易解决:禁止(CSRF 令牌丢失或不正确。):/account/requestaccess/ [15/Nov/2017 09:37:14] "POST /account/requestaccess/ HTTP/1.1" 403 2502
    • 是的,使用 csrf_expemt
    猜你喜欢
    • 2020-10-28
    • 1970-01-01
    • 2022-06-14
    • 2022-07-04
    • 2018-01-10
    • 1970-01-01
    • 2019-02-14
    • 2015-08-22
    • 2020-03-31
    相关资源
    最近更新 更多