我正在尝试和ajax调用我的django后端

时间:2018-06-18 21:32:04

标签: html ajax django

我有代码tyng来调用我的django使用ajax支持 但它给了我这个错误:反向'delete_skill',找不到参数'('',)'。尝试了1种模式:['jobs / delete_skill /(?P [0-9] +)$']

<a href="{% url 'freelance:delete_skill' id_number %}"
                       class="glyphicon glyphicon-trash delete_skill"
                            style="padding:0px; margin:0px; background:grey;
                             color:red; border:0px;" id="{{skill.id}}"></a>
            </span>
            {% endfor %}
            {% endif %}
            <script>
                $(document).ready(function() {
                   $(".delete_skill").click(function(){
                var id_number = this.id;
                alert(id_number);
                $.ajax({
                   type: 'DELETE',
                   url: "{% url 'freelance:delete_skill' id_number %}",
                   dataType: "json",
                   data: 'identifier='+id_number, 'csrfmiddlewaretoken': '{{ csrf_token }}
                   success: function(){
                      if(data) {alert("Success! skill has been deleted")}
        });

     });

}); 我的网址是这样的

url(r'^delete_skill/(?P<identifier>[0-9]+)$', views.delete_skill, name='delete_skill'),

任何有关正在发生的事情或我应该添加的内容的帮助

1 个答案:

答案 0 :(得分:0)

好的,为了帮助你前进,这是我使用的原则:

  1. 为href创建data- *属性,例如data-href。您可以阅读有关data- * attributes here的更多信息。

    <a href="#" data-href="{% url 'freelance:delete_skill' skill.id %}" 
      class="glyphicon glyphicon-trash delete_skill" style="padding:0px; margin:0px;
      background:grey; color:red; border:0px;" id="{{skill.id}}"></a>
    
  2. 您可以使用getAttribute()或数据集属性在javascript中访问此data-href属性。下面是jQuery示例,因为您已经使用了jQuery。

    $(".delete_skill").click(function() {
        var url = $(this).attr("data-href");
        $.ajax({
            type: "DELETE",
            url: url,
            dataType: "json",
            data: {csrfmiddlewaretoken: '{{ csrf_token }}'},
            success: function(data){
                if(data) {
                    alert("Success! skill has been deleted");
                }
            }
         });
    });
    
  3. 这样,当您更改网址时,您的代码就不会中断。