django delete()成功函数错误

时间:2016-01-12 15:33:47

标签: javascript python ajax django

所以我的删除功能有问题,它确实删除了它的意图,但不会去window.location。相反,我得到了错误

在/ api / personnel / delete /中的DoesNotExist 资源匹配查询不存在。

我想象的是因为它刚被删除了。我如何解决这个问题?

var deletepers = function(){    
var persid = getUrlVars()["id"];
data={persid}
console.log(persid);
        $.ajax({
        type: "POST",
        url: "/api/personnel/delete/",
        data: JSON.stringify(data),
        contentType: "application/json",
        dataType: 'json',
            success:function(response){
                window.location.href = "/Personnel";
        }   
    })
}

def delete_personnel(request):

    # Try find the requested app
    if request.method == "POST":
    pers_id = request.POST.get('persid')

    pers = Resource.objects.get(id=pers_id)
    if not pers: return HttpResponseNotFound()

    pers.delete()

    return HttpResponse(content_type='application/json')

1 个答案:

答案 0 :(得分:1)

您没有以您的视图所期望的格式传递数据。 JS中的{persid}被解释为persid,而不是哈希;所以在视图中,request.POST.get('persid')是无。

而是使用实际的JS哈希:

data = { persid: persid }